diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/GPBMetadata/Google/Cloud/Managedidentities/V1/ManagedIdentitiesService.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/GPBMetadata/Google/Cloud/Managedidentities/V1/ManagedIdentitiesService.php
new file mode 100644
index 000000000000..b488af3c4a76
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/GPBMetadata/Google/Cloud/Managedidentities/V1/ManagedIdentitiesService.php
@@ -0,0 +1,117 @@
+internalAddGeneratedFile(
+ '
+ß$
+Bgoogle/cloud/managedidentities/v1/managed_identities_service.proto!google.cloud.managedidentities.v1google/api/client.protogoogle/api/field_behavior.protogoogle/api/resource.proto0google/cloud/managedidentities/v1/resource.proto#google/longrunning/operations.proto google/protobuf/field_mask.protogoogle/protobuf/timestamp.proto"Ü
+
+OpMetadata4
+create_time (2.google.protobuf.TimestampBàA1
+end_time (2.google.protobuf.TimestampBàA
+target ( BàA
+verb ( BàA#
+requested_cancellation (BàA
+api_version ( BàA"»
+CreateMicrosoftAdDomainRequest?
+parent ( B/àAúA)\'managedidentities.googleapis.com/Domain
+domain_name ( BàA>
+domain (2).google.cloud.managedidentities.v1.DomainBàA"Z
+ResetAdminPasswordRequest=
+name ( B/àAúA)
+\'managedidentities.googleapis.com/Domain".
+ResetAdminPasswordResponse
+password ( "²
+ListDomainsRequest?
+parent ( B/àAúA)\'managedidentities.googleapis.com/Domain
+ page_size (BàA
+
+page_token ( BàA
+filter ( BàA
+order_by ( BàA"
+ListDomainsResponse:
+domains (2).google.cloud.managedidentities.v1.Domain
+next_page_token (
+unreachable ( "Q
+GetDomainRequest=
+name ( B/àAúA)
+\'managedidentities.googleapis.com/Domain"‹
+UpdateDomainRequest4
+update_mask (2.google.protobuf.FieldMaskBàA>
+domain (2).google.cloud.managedidentities.v1.DomainBàA"T
+DeleteDomainRequest=
+name ( B/àAúA)
+\'managedidentities.googleapis.com/Domain"‘
+AttachTrustRequest=
+name ( B/àAúA)
+\'managedidentities.googleapis.com/Domain<
+trust (2(.google.cloud.managedidentities.v1.TrustBàA"Ÿ
+ReconfigureTrustRequest=
+name ( B/àAúA)
+\'managedidentities.googleapis.com/Domain
+target_domain_name ( BàA$
+target_dns_ip_addresses ( BàA"‘
+DetachTrustRequest=
+name ( B/àAúA)
+\'managedidentities.googleapis.com/Domain<
+trust (2(.google.cloud.managedidentities.v1.TrustBàA"“
+ValidateTrustRequest=
+name ( B/àAúA)
+\'managedidentities.googleapis.com/Domain<
+trust (2(.google.cloud.managedidentities.v1.TrustBàA2ò
+ManagedIdentitiesServiceð
+CreateMicrosoftAdDomainA.google.cloud.managedidentities.v1.CreateMicrosoftAdDomainRequest.google.longrunning.Operation"sÊA
+Domain
+OpMetadataÚAparent,domain_name,domain‚Óä“:"0/v1/{parent=projects/*/locations/global}/domains:domainè
+ResetAdminPassword<.google.cloud.managedidentities.v1.ResetAdminPasswordRequest=.google.cloud.managedidentities.v1.ResetAdminPasswordResponse"UÚAname‚Óä“H"C/v1/{name=projects/*/locations/global/domains/*}:resetAdminPassword:*¿
+ListDomains5.google.cloud.managedidentities.v1.ListDomainsRequest6.google.cloud.managedidentities.v1.ListDomainsResponse"AÚAparent‚Óä“20/v1/{parent=projects/*/locations/global}/domains¬
+ GetDomain3.google.cloud.managedidentities.v1.GetDomainRequest).google.cloud.managedidentities.v1.Domain"?ÚAname‚Óä“20/v1/{name=projects/*/locations/global/domains/*}Ú
+UpdateDomain6.google.cloud.managedidentities.v1.UpdateDomainRequest.google.longrunning.Operation"sÊA
+Domain
+OpMetadataÚAdomain,update_mask‚Óä“A27/v1/{domain.name=projects/*/locations/global/domains/*}:domainÌ
+DeleteDomain6.google.cloud.managedidentities.v1.DeleteDomainRequest.google.longrunning.Operation"eÊA#
+google.protobuf.Empty
+OpMetadataÚAname‚Óä“2*0/v1/{name=projects/*/locations/global/domains/*}Ð
+AttachTrust5.google.cloud.managedidentities.v1.AttachTrustRequest.google.longrunning.Operation"kÊA
+Domain
+OpMetadataÚA
+name,trust‚Óä“A"/v1/{name=projects/*/locations/global/domains/*}:validateTrust:*TÊA managedidentities.googleapis.comÒA.https://www.googleapis.com/auth/cloud-platformB“
+%com.google.cloud.managedidentities.v1BManagedIdentitiesServiceProtoPZScloud.google.com/go/managedidentities/apiv1/managedidentitiespb;managedidentitiespb¢GCMIª!Google.Cloud.ManagedIdentities.V1Ê!Google\\Cloud\\ManagedIdentities\\V1ê$Google::Cloud::ManagedIdentities::V1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/GPBMetadata/Google/Cloud/Managedidentities/V1/Resource.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/GPBMetadata/Google/Cloud/Managedidentities/V1/Resource.php
new file mode 100644
index 000000000000..f7ef4e6c6bea
Binary files /dev/null and b/owl-bot-staging/ManagedIdentities/v1/proto/src/GPBMetadata/Google/Cloud/Managedidentities/V1/Resource.php differ
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/AttachTrustRequest.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/AttachTrustRequest.php
new file mode 100644
index 000000000000..6c24ed9c409c
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/AttachTrustRequest.php
@@ -0,0 +1,133 @@
+google.cloud.managedidentities.v1.AttachTrustRequest
+ */
+class AttachTrustRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource domain name, project name and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. The domain trust resource.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust trust = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $trust = null;
+
+ /**
+ * @param string $name Required. The resource domain name, project name and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ * Please see {@see ManagedIdentitiesServiceClient::domainName()} for help formatting this field.
+ * @param \Google\Cloud\ManagedIdentities\V1\Trust $trust Required. The domain trust resource.
+ *
+ * @return \Google\Cloud\ManagedIdentities\V1\AttachTrustRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name, \Google\Cloud\ManagedIdentities\V1\Trust $trust): self
+ {
+ return (new self())
+ ->setName($name)
+ ->setTrust($trust);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The resource domain name, project name and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ * @type \Google\Cloud\ManagedIdentities\V1\Trust $trust
+ * Required. The domain trust resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedidentities\V1\ManagedIdentitiesService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource domain name, project name and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The resource domain name, project name and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The domain trust resource.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust trust = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ManagedIdentities\V1\Trust|null
+ */
+ public function getTrust()
+ {
+ return $this->trust;
+ }
+
+ public function hasTrust()
+ {
+ return isset($this->trust);
+ }
+
+ public function clearTrust()
+ {
+ unset($this->trust);
+ }
+
+ /**
+ * Required. The domain trust resource.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust trust = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ManagedIdentities\V1\Trust $var
+ * @return $this
+ */
+ public function setTrust($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ManagedIdentities\V1\Trust::class);
+ $this->trust = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/CreateMicrosoftAdDomainRequest.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/CreateMicrosoftAdDomainRequest.php
new file mode 100644
index 000000000000..d96de3d33357
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/CreateMicrosoftAdDomainRequest.php
@@ -0,0 +1,220 @@
+google.cloud.managedidentities.v1.CreateMicrosoftAdDomainRequest
+ */
+class CreateMicrosoftAdDomainRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource project name and location using the form:
+ * `projects/{project_id}/locations/global`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The fully qualified domain name.
+ * e.g. mydomain.myorganization.com, with the following restrictions:
+ * * Must contain only lowercase letters, numbers, periods and hyphens.
+ * * Must start with a letter.
+ * * Must contain between 2-64 characters.
+ * * Must end with a number or a letter.
+ * * Must not start with period.
+ * * First segement length (mydomain form example above) shouldn't exceed
+ * 15 chars.
+ * * The last segment cannot be fully numeric.
+ * * Must be unique within the customer project.
+ *
+ * Generated from protobuf field string domain_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $domain_name = '';
+ /**
+ * Required. A Managed Identity domain resource.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Domain domain = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $domain = null;
+
+ /**
+ * @param string $parent Required. The resource project name and location using the form:
+ * `projects/{project_id}/locations/global`
+ * Please see {@see ManagedIdentitiesServiceClient::locationName()} for help formatting this field.
+ * @param string $domainName Required. The fully qualified domain name.
+ * e.g. mydomain.myorganization.com, with the following restrictions:
+ *
+ * * Must contain only lowercase letters, numbers, periods and hyphens.
+ * * Must start with a letter.
+ * * Must contain between 2-64 characters.
+ * * Must end with a number or a letter.
+ * * Must not start with period.
+ * * First segement length (mydomain form example above) shouldn't exceed
+ * 15 chars.
+ * * The last segment cannot be fully numeric.
+ * * Must be unique within the customer project.
+ * @param \Google\Cloud\ManagedIdentities\V1\Domain $domain Required. A Managed Identity domain resource.
+ *
+ * @return \Google\Cloud\ManagedIdentities\V1\CreateMicrosoftAdDomainRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, string $domainName, \Google\Cloud\ManagedIdentities\V1\Domain $domain): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setDomainName($domainName)
+ ->setDomain($domain);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The resource project name and location using the form:
+ * `projects/{project_id}/locations/global`
+ * @type string $domain_name
+ * Required. The fully qualified domain name.
+ * e.g. mydomain.myorganization.com, with the following restrictions:
+ * * Must contain only lowercase letters, numbers, periods and hyphens.
+ * * Must start with a letter.
+ * * Must contain between 2-64 characters.
+ * * Must end with a number or a letter.
+ * * Must not start with period.
+ * * First segement length (mydomain form example above) shouldn't exceed
+ * 15 chars.
+ * * The last segment cannot be fully numeric.
+ * * Must be unique within the customer project.
+ * @type \Google\Cloud\ManagedIdentities\V1\Domain $domain
+ * Required. A Managed Identity domain resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedidentities\V1\ManagedIdentitiesService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource project name and location using the form:
+ * `projects/{project_id}/locations/global`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The resource project name and location using the form:
+ * `projects/{project_id}/locations/global`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The fully qualified domain name.
+ * e.g. mydomain.myorganization.com, with the following restrictions:
+ * * Must contain only lowercase letters, numbers, periods and hyphens.
+ * * Must start with a letter.
+ * * Must contain between 2-64 characters.
+ * * Must end with a number or a letter.
+ * * Must not start with period.
+ * * First segement length (mydomain form example above) shouldn't exceed
+ * 15 chars.
+ * * The last segment cannot be fully numeric.
+ * * Must be unique within the customer project.
+ *
+ * Generated from protobuf field string domain_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDomainName()
+ {
+ return $this->domain_name;
+ }
+
+ /**
+ * Required. The fully qualified domain name.
+ * e.g. mydomain.myorganization.com, with the following restrictions:
+ * * Must contain only lowercase letters, numbers, periods and hyphens.
+ * * Must start with a letter.
+ * * Must contain between 2-64 characters.
+ * * Must end with a number or a letter.
+ * * Must not start with period.
+ * * First segement length (mydomain form example above) shouldn't exceed
+ * 15 chars.
+ * * The last segment cannot be fully numeric.
+ * * Must be unique within the customer project.
+ *
+ * Generated from protobuf field string domain_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDomainName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->domain_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. A Managed Identity domain resource.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Domain domain = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ManagedIdentities\V1\Domain|null
+ */
+ public function getDomain()
+ {
+ return $this->domain;
+ }
+
+ public function hasDomain()
+ {
+ return isset($this->domain);
+ }
+
+ public function clearDomain()
+ {
+ unset($this->domain);
+ }
+
+ /**
+ * Required. A Managed Identity domain resource.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Domain domain = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ManagedIdentities\V1\Domain $var
+ * @return $this
+ */
+ public function setDomain($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ManagedIdentities\V1\Domain::class);
+ $this->domain = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/DeleteDomainRequest.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/DeleteDomainRequest.php
new file mode 100644
index 000000000000..e32ca99efc77
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/DeleteDomainRequest.php
@@ -0,0 +1,87 @@
+google.cloud.managedidentities.v1.DeleteDomainRequest
+ */
+class DeleteDomainRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The domain resource name using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The domain resource name using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ * Please see {@see ManagedIdentitiesServiceClient::domainName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ManagedIdentities\V1\DeleteDomainRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The domain resource name using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedidentities\V1\ManagedIdentitiesService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The domain resource name using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The domain resource name using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/DetachTrustRequest.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/DetachTrustRequest.php
new file mode 100644
index 000000000000..6f4da640e84c
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/DetachTrustRequest.php
@@ -0,0 +1,133 @@
+google.cloud.managedidentities.v1.DetachTrustRequest
+ */
+class DetachTrustRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource domain name, project name, and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. The domain trust resource to removed.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust trust = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $trust = null;
+
+ /**
+ * @param string $name Required. The resource domain name, project name, and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ * Please see {@see ManagedIdentitiesServiceClient::domainName()} for help formatting this field.
+ * @param \Google\Cloud\ManagedIdentities\V1\Trust $trust Required. The domain trust resource to removed.
+ *
+ * @return \Google\Cloud\ManagedIdentities\V1\DetachTrustRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name, \Google\Cloud\ManagedIdentities\V1\Trust $trust): self
+ {
+ return (new self())
+ ->setName($name)
+ ->setTrust($trust);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The resource domain name, project name, and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ * @type \Google\Cloud\ManagedIdentities\V1\Trust $trust
+ * Required. The domain trust resource to removed.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedidentities\V1\ManagedIdentitiesService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource domain name, project name, and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The resource domain name, project name, and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The domain trust resource to removed.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust trust = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ManagedIdentities\V1\Trust|null
+ */
+ public function getTrust()
+ {
+ return $this->trust;
+ }
+
+ public function hasTrust()
+ {
+ return isset($this->trust);
+ }
+
+ public function clearTrust()
+ {
+ unset($this->trust);
+ }
+
+ /**
+ * Required. The domain trust resource to removed.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust trust = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ManagedIdentities\V1\Trust $var
+ * @return $this
+ */
+ public function setTrust($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ManagedIdentities\V1\Trust::class);
+ $this->trust = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Domain.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Domain.php
new file mode 100644
index 000000000000..fcc587589a00
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Domain.php
@@ -0,0 +1,525 @@
+google.cloud.managedidentities.v1.Domain
+ */
+class Domain extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The unique name of the domain using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $name = '';
+ /**
+ * Optional. Resource labels that can contain user-provided metadata.
+ *
+ * Generated from protobuf field map labels = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $labels;
+ /**
+ * Optional. The full names of the Google Compute Engine
+ * [networks](/compute/docs/networks-and-firewalls#networks) the domain
+ * instance is connected to. Networks can be added using UpdateDomain.
+ * The domain is only available on networks listed in `authorized_networks`.
+ * If CIDR subnets overlap between networks, domain creation will fail.
+ *
+ * Generated from protobuf field repeated string authorized_networks = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $authorized_networks;
+ /**
+ * Required. The CIDR range of internal addresses that are reserved for this
+ * domain. Reserved networks must be /24 or larger. Ranges must be
+ * unique and non-overlapping with existing subnets in
+ * [Domain].[authorized_networks].
+ *
+ * Generated from protobuf field string reserved_ip_range = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $reserved_ip_range = '';
+ /**
+ * Required. Locations where domain needs to be provisioned.
+ * [regions][compute/docs/regions-zones/]
+ * e.g. us-west1 or us-east4
+ * Service supports up to 4 locations at once. Each location will use a /26
+ * block.
+ *
+ * Generated from protobuf field repeated string locations = 5 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $locations;
+ /**
+ * Optional. The name of delegated administrator account used to perform
+ * Active Directory operations. If not specified, `setupadmin` will be used.
+ *
+ * Generated from protobuf field string admin = 6 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $admin = '';
+ /**
+ * Output only. The fully-qualified domain name of the exposed domain used by
+ * clients to connect to the service. Similar to what would be chosen for an
+ * Active Directory set up on an internal network.
+ *
+ * Generated from protobuf field string fqdn = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $fqdn = '';
+ /**
+ * Output only. The time the instance was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The last update time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * Output only. The current state of this domain.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Domain.State state = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. Additional information about the current status of this
+ * domain, if available.
+ *
+ * Generated from protobuf field string status_message = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $status_message = '';
+ /**
+ * Output only. The current trusts associated with the domain.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedidentities.v1.Trust trusts = 15 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $trusts;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The unique name of the domain using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Optional. Resource labels that can contain user-provided metadata.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $authorized_networks
+ * Optional. The full names of the Google Compute Engine
+ * [networks](/compute/docs/networks-and-firewalls#networks) the domain
+ * instance is connected to. Networks can be added using UpdateDomain.
+ * The domain is only available on networks listed in `authorized_networks`.
+ * If CIDR subnets overlap between networks, domain creation will fail.
+ * @type string $reserved_ip_range
+ * Required. The CIDR range of internal addresses that are reserved for this
+ * domain. Reserved networks must be /24 or larger. Ranges must be
+ * unique and non-overlapping with existing subnets in
+ * [Domain].[authorized_networks].
+ * @type array|\Google\Protobuf\Internal\RepeatedField $locations
+ * Required. Locations where domain needs to be provisioned.
+ * [regions][compute/docs/regions-zones/]
+ * e.g. us-west1 or us-east4
+ * Service supports up to 4 locations at once. Each location will use a /26
+ * block.
+ * @type string $admin
+ * Optional. The name of delegated administrator account used to perform
+ * Active Directory operations. If not specified, `setupadmin` will be used.
+ * @type string $fqdn
+ * Output only. The fully-qualified domain name of the exposed domain used by
+ * clients to connect to the service. Similar to what would be chosen for an
+ * Active Directory set up on an internal network.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time the instance was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The last update time.
+ * @type int $state
+ * Output only. The current state of this domain.
+ * @type string $status_message
+ * Output only. Additional information about the current status of this
+ * domain, if available.
+ * @type array<\Google\Cloud\ManagedIdentities\V1\Trust>|\Google\Protobuf\Internal\RepeatedField $trusts
+ * Output only. The current trusts associated with the domain.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedidentities\V1\Resource::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The unique name of the domain using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The unique name of the domain using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Resource labels that can contain user-provided metadata.
+ *
+ * Generated from protobuf field map labels = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Optional. Resource labels that can contain user-provided metadata.
+ *
+ * Generated from protobuf field map labels = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->labels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The full names of the Google Compute Engine
+ * [networks](/compute/docs/networks-and-firewalls#networks) the domain
+ * instance is connected to. Networks can be added using UpdateDomain.
+ * The domain is only available on networks listed in `authorized_networks`.
+ * If CIDR subnets overlap between networks, domain creation will fail.
+ *
+ * Generated from protobuf field repeated string authorized_networks = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAuthorizedNetworks()
+ {
+ return $this->authorized_networks;
+ }
+
+ /**
+ * Optional. The full names of the Google Compute Engine
+ * [networks](/compute/docs/networks-and-firewalls#networks) the domain
+ * instance is connected to. Networks can be added using UpdateDomain.
+ * The domain is only available on networks listed in `authorized_networks`.
+ * If CIDR subnets overlap between networks, domain creation will fail.
+ *
+ * Generated from protobuf field repeated string authorized_networks = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAuthorizedNetworks($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->authorized_networks = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Required. The CIDR range of internal addresses that are reserved for this
+ * domain. Reserved networks must be /24 or larger. Ranges must be
+ * unique and non-overlapping with existing subnets in
+ * [Domain].[authorized_networks].
+ *
+ * Generated from protobuf field string reserved_ip_range = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getReservedIpRange()
+ {
+ return $this->reserved_ip_range;
+ }
+
+ /**
+ * Required. The CIDR range of internal addresses that are reserved for this
+ * domain. Reserved networks must be /24 or larger. Ranges must be
+ * unique and non-overlapping with existing subnets in
+ * [Domain].[authorized_networks].
+ *
+ * Generated from protobuf field string reserved_ip_range = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setReservedIpRange($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->reserved_ip_range = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Locations where domain needs to be provisioned.
+ * [regions][compute/docs/regions-zones/]
+ * e.g. us-west1 or us-east4
+ * Service supports up to 4 locations at once. Each location will use a /26
+ * block.
+ *
+ * Generated from protobuf field repeated string locations = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getLocations()
+ {
+ return $this->locations;
+ }
+
+ /**
+ * Required. Locations where domain needs to be provisioned.
+ * [regions][compute/docs/regions-zones/]
+ * e.g. us-west1 or us-east4
+ * Service supports up to 4 locations at once. Each location will use a /26
+ * block.
+ *
+ * Generated from protobuf field repeated string locations = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setLocations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->locations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The name of delegated administrator account used to perform
+ * Active Directory operations. If not specified, `setupadmin` will be used.
+ *
+ * Generated from protobuf field string admin = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getAdmin()
+ {
+ return $this->admin;
+ }
+
+ /**
+ * Optional. The name of delegated administrator account used to perform
+ * Active Directory operations. If not specified, `setupadmin` will be used.
+ *
+ * Generated from protobuf field string admin = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setAdmin($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->admin = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The fully-qualified domain name of the exposed domain used by
+ * clients to connect to the service. Similar to what would be chosen for an
+ * Active Directory set up on an internal network.
+ *
+ * Generated from protobuf field string fqdn = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getFqdn()
+ {
+ return $this->fqdn;
+ }
+
+ /**
+ * Output only. The fully-qualified domain name of the exposed domain used by
+ * clients to connect to the service. Similar to what would be chosen for an
+ * Active Directory set up on an internal network.
+ *
+ * Generated from protobuf field string fqdn = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setFqdn($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->fqdn = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time the instance was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The time the instance was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The last update time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The last update time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The current state of this domain.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Domain.State state = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of this domain.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Domain.State state = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ManagedIdentities\V1\Domain\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Additional information about the current status of this
+ * domain, if available.
+ *
+ * Generated from protobuf field string status_message = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStatusMessage()
+ {
+ return $this->status_message;
+ }
+
+ /**
+ * Output only. Additional information about the current status of this
+ * domain, if available.
+ *
+ * Generated from protobuf field string status_message = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStatusMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->status_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The current trusts associated with the domain.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedidentities.v1.Trust trusts = 15 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTrusts()
+ {
+ return $this->trusts;
+ }
+
+ /**
+ * Output only. The current trusts associated with the domain.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedidentities.v1.Trust trusts = 15 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\ManagedIdentities\V1\Trust>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTrusts($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ManagedIdentities\V1\Trust::class);
+ $this->trusts = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Domain/State.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Domain/State.php
new file mode 100644
index 000000000000..1c43dad77b98
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Domain/State.php
@@ -0,0 +1,100 @@
+google.cloud.managedidentities.v1.Domain.State
+ */
+class State
+{
+ /**
+ * Not set.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The domain is being created.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * The domain has been created and is fully usable.
+ *
+ * Generated from protobuf enum READY = 2;
+ */
+ const READY = 2;
+ /**
+ * The domain's configuration is being updated.
+ *
+ * Generated from protobuf enum UPDATING = 3;
+ */
+ const UPDATING = 3;
+ /**
+ * The domain is being deleted.
+ *
+ * Generated from protobuf enum DELETING = 4;
+ */
+ const DELETING = 4;
+ /**
+ * The domain is being repaired and may be unusable. Details
+ * can be found in the `status_message` field.
+ *
+ * Generated from protobuf enum REPAIRING = 5;
+ */
+ const REPAIRING = 5;
+ /**
+ * The domain is undergoing maintenance.
+ *
+ * Generated from protobuf enum PERFORMING_MAINTENANCE = 6;
+ */
+ const PERFORMING_MAINTENANCE = 6;
+ /**
+ * The domain is not serving requests.
+ *
+ * Generated from protobuf enum UNAVAILABLE = 7;
+ */
+ const UNAVAILABLE = 7;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::READY => 'READY',
+ self::UPDATING => 'UPDATING',
+ self::DELETING => 'DELETING',
+ self::REPAIRING => 'REPAIRING',
+ self::PERFORMING_MAINTENANCE => 'PERFORMING_MAINTENANCE',
+ self::UNAVAILABLE => 'UNAVAILABLE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(State::class, \Google\Cloud\ManagedIdentities\V1\Domain_State::class);
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/GetDomainRequest.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/GetDomainRequest.php
new file mode 100644
index 000000000000..8900370c46d4
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/GetDomainRequest.php
@@ -0,0 +1,86 @@
+google.cloud.managedidentities.v1.GetDomainRequest
+ */
+class GetDomainRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The domain resource name using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The domain resource name using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ * Please see {@see ManagedIdentitiesServiceClient::domainName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ManagedIdentities\V1\GetDomainRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The domain resource name using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedidentities\V1\ManagedIdentitiesService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The domain resource name using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The domain resource name using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ListDomainsRequest.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ListDomainsRequest.php
new file mode 100644
index 000000000000..0d7b7bdcb159
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ListDomainsRequest.php
@@ -0,0 +1,263 @@
+google.cloud.managedidentities.v1.ListDomainsRequest
+ */
+class ListDomainsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource name of the domain location using the form:
+ * `projects/{project_id}/locations/global`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of items to return.
+ * If not specified, a default value of 1000 will be used.
+ * Regardless of the page_size value, the response may include a partial list.
+ * Callers should rely on a response's
+ * [next_page_token][google.cloud.managedidentities.v1.ListDomainsResponse.next_page_token]
+ * to determine if there are additional results to list.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. The `next_page_token` value returned from a previous ListDomainsRequest
+ * request, if any.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+ /**
+ * Optional. A filter specifying constraints of a list operation.
+ * For example, `Domain.fqdn="mydomain.myorginization"`.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Specifies the ordering of results. See
+ * [Sorting
+ * order](https://cloud.google.com/apis/design/design_patterns#sorting_order)
+ * for more information.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. The resource name of the domain location using the form:
+ * `projects/{project_id}/locations/global`
+ * Please see {@see ManagedIdentitiesServiceClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ManagedIdentities\V1\ListDomainsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The resource name of the domain location using the form:
+ * `projects/{project_id}/locations/global`
+ * @type int $page_size
+ * Optional. The maximum number of items to return.
+ * If not specified, a default value of 1000 will be used.
+ * Regardless of the page_size value, the response may include a partial list.
+ * Callers should rely on a response's
+ * [next_page_token][google.cloud.managedidentities.v1.ListDomainsResponse.next_page_token]
+ * to determine if there are additional results to list.
+ * @type string $page_token
+ * Optional. The `next_page_token` value returned from a previous ListDomainsRequest
+ * request, if any.
+ * @type string $filter
+ * Optional. A filter specifying constraints of a list operation.
+ * For example, `Domain.fqdn="mydomain.myorginization"`.
+ * @type string $order_by
+ * Optional. Specifies the ordering of results. See
+ * [Sorting
+ * order](https://cloud.google.com/apis/design/design_patterns#sorting_order)
+ * for more information.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedidentities\V1\ManagedIdentitiesService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource name of the domain location using the form:
+ * `projects/{project_id}/locations/global`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The resource name of the domain location using the form:
+ * `projects/{project_id}/locations/global`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The maximum number of items to return.
+ * If not specified, a default value of 1000 will be used.
+ * Regardless of the page_size value, the response may include a partial list.
+ * Callers should rely on a response's
+ * [next_page_token][google.cloud.managedidentities.v1.ListDomainsResponse.next_page_token]
+ * to determine if there are additional results to list.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. The maximum number of items to return.
+ * If not specified, a default value of 1000 will be used.
+ * Regardless of the page_size value, the response may include a partial list.
+ * Callers should rely on a response's
+ * [next_page_token][google.cloud.managedidentities.v1.ListDomainsResponse.next_page_token]
+ * to determine if there are additional results to list.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The `next_page_token` value returned from a previous ListDomainsRequest
+ * request, if any.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. The `next_page_token` value returned from a previous ListDomainsRequest
+ * request, if any.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A filter specifying constraints of a list operation.
+ * For example, `Domain.fqdn="mydomain.myorginization"`.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. A filter specifying constraints of a list operation.
+ * For example, `Domain.fqdn="mydomain.myorginization"`.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Specifies the ordering of results. See
+ * [Sorting
+ * order](https://cloud.google.com/apis/design/design_patterns#sorting_order)
+ * for more information.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Specifies the ordering of results. See
+ * [Sorting
+ * order](https://cloud.google.com/apis/design/design_patterns#sorting_order)
+ * for more information.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ListDomainsResponse.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ListDomainsResponse.php
new file mode 100644
index 000000000000..4d274be3bf26
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ListDomainsResponse.php
@@ -0,0 +1,140 @@
+google.cloud.managedidentities.v1.ListDomainsResponse
+ */
+class ListDomainsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of Managed Identities Service domains in the project.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedidentities.v1.Domain domains = 1;
+ */
+ private $domains;
+ /**
+ * A token to retrieve the next page of results, or empty if there are no more
+ * results in the list.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * A list of locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ManagedIdentities\V1\Domain>|\Google\Protobuf\Internal\RepeatedField $domains
+ * A list of Managed Identities Service domains in the project.
+ * @type string $next_page_token
+ * A token to retrieve the next page of results, or empty if there are no more
+ * results in the list.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * A list of locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedidentities\V1\ManagedIdentitiesService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of Managed Identities Service domains in the project.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedidentities.v1.Domain domains = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDomains()
+ {
+ return $this->domains;
+ }
+
+ /**
+ * A list of Managed Identities Service domains in the project.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedidentities.v1.Domain domains = 1;
+ * @param array<\Google\Cloud\ManagedIdentities\V1\Domain>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDomains($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ManagedIdentities\V1\Domain::class);
+ $this->domains = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token to retrieve the next page of results, or empty if there are no more
+ * results in the list.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token to retrieve the next page of results, or empty if there are no more
+ * results in the list.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * A list of locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * A list of locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/OpMetadata.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/OpMetadata.php
new file mode 100644
index 000000000000..45fcb533abb3
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/OpMetadata.php
@@ -0,0 +1,269 @@
+google.cloud.managedidentities.v1.OpMetadata
+ */
+class OpMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $target = '';
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $verb = '';
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have successfully been cancelled
+ * have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
+ * corresponding to `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $requested_cancellation = false;
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $api_version = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time the operation was created.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time the operation finished running.
+ * @type string $target
+ * Output only. Server-defined resource path for the target of the operation.
+ * @type string $verb
+ * Output only. Name of the verb executed by the operation.
+ * @type bool $requested_cancellation
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have successfully been cancelled
+ * have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
+ * corresponding to `Code.CANCELLED`.
+ * @type string $api_version
+ * Output only. API version used to start the operation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedidentities\V1\ManagedIdentitiesService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEndTime()
+ {
+ return $this->end_time;
+ }
+
+ public function hasEndTime()
+ {
+ return isset($this->end_time);
+ }
+
+ public function clearEndTime()
+ {
+ unset($this->end_time);
+ }
+
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getTarget()
+ {
+ return $this->target;
+ }
+
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setTarget($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getVerb()
+ {
+ return $this->verb;
+ }
+
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setVerb($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->verb = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have successfully been cancelled
+ * have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
+ * corresponding to `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getRequestedCancellation()
+ {
+ return $this->requested_cancellation;
+ }
+
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have successfully been cancelled
+ * have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
+ * corresponding to `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setRequestedCancellation($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->requested_cancellation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getApiVersion()
+ {
+ return $this->api_version;
+ }
+
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setApiVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->api_version = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ReconfigureTrustRequest.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ReconfigureTrustRequest.php
new file mode 100644
index 000000000000..fe92488377fc
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ReconfigureTrustRequest.php
@@ -0,0 +1,169 @@
+google.cloud.managedidentities.v1.ReconfigureTrustRequest
+ */
+class ReconfigureTrustRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource domain name, project name and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. The fully-qualified target domain name which will be in trust with current
+ * domain.
+ *
+ * Generated from protobuf field string target_domain_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $target_domain_name = '';
+ /**
+ * Required. The target DNS server IP addresses to resolve the remote domain involved
+ * in the trust.
+ *
+ * Generated from protobuf field repeated string target_dns_ip_addresses = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $target_dns_ip_addresses;
+
+ /**
+ * @param string $name Required. The resource domain name, project name and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ * Please see {@see ManagedIdentitiesServiceClient::domainName()} for help formatting this field.
+ * @param string $targetDomainName Required. The fully-qualified target domain name which will be in trust with current
+ * domain.
+ * @param string[] $targetDnsIpAddresses Required. The target DNS server IP addresses to resolve the remote domain involved
+ * in the trust.
+ *
+ * @return \Google\Cloud\ManagedIdentities\V1\ReconfigureTrustRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name, string $targetDomainName, array $targetDnsIpAddresses): self
+ {
+ return (new self())
+ ->setName($name)
+ ->setTargetDomainName($targetDomainName)
+ ->setTargetDnsIpAddresses($targetDnsIpAddresses);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The resource domain name, project name and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ * @type string $target_domain_name
+ * Required. The fully-qualified target domain name which will be in trust with current
+ * domain.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $target_dns_ip_addresses
+ * Required. The target DNS server IP addresses to resolve the remote domain involved
+ * in the trust.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedidentities\V1\ManagedIdentitiesService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource domain name, project name and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The resource domain name, project name and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The fully-qualified target domain name which will be in trust with current
+ * domain.
+ *
+ * Generated from protobuf field string target_domain_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getTargetDomainName()
+ {
+ return $this->target_domain_name;
+ }
+
+ /**
+ * Required. The fully-qualified target domain name which will be in trust with current
+ * domain.
+ *
+ * Generated from protobuf field string target_domain_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setTargetDomainName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target_domain_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The target DNS server IP addresses to resolve the remote domain involved
+ * in the trust.
+ *
+ * Generated from protobuf field repeated string target_dns_ip_addresses = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTargetDnsIpAddresses()
+ {
+ return $this->target_dns_ip_addresses;
+ }
+
+ /**
+ * Required. The target DNS server IP addresses to resolve the remote domain involved
+ * in the trust.
+ *
+ * Generated from protobuf field repeated string target_dns_ip_addresses = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTargetDnsIpAddresses($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->target_dns_ip_addresses = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ResetAdminPasswordRequest.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ResetAdminPasswordRequest.php
new file mode 100644
index 000000000000..5aa41f4f8b8e
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ResetAdminPasswordRequest.php
@@ -0,0 +1,87 @@
+google.cloud.managedidentities.v1.ResetAdminPasswordRequest
+ */
+class ResetAdminPasswordRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The domain resource name using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The domain resource name using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ * Please see {@see ManagedIdentitiesServiceClient::domainName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ManagedIdentities\V1\ResetAdminPasswordRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The domain resource name using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedidentities\V1\ManagedIdentitiesService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The domain resource name using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The domain resource name using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ResetAdminPasswordResponse.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ResetAdminPasswordResponse.php
new file mode 100644
index 000000000000..0e2b6865b4ef
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ResetAdminPasswordResponse.php
@@ -0,0 +1,68 @@
+google.cloud.managedidentities.v1.ResetAdminPasswordResponse
+ */
+class ResetAdminPasswordResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A random password. See [admin][google.cloud.managedidentities.v1.Domain.admin] for more information.
+ *
+ * Generated from protobuf field string password = 1;
+ */
+ protected $password = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $password
+ * A random password. See [admin][google.cloud.managedidentities.v1.Domain.admin] for more information.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedidentities\V1\ManagedIdentitiesService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A random password. See [admin][google.cloud.managedidentities.v1.Domain.admin] for more information.
+ *
+ * Generated from protobuf field string password = 1;
+ * @return string
+ */
+ public function getPassword()
+ {
+ return $this->password;
+ }
+
+ /**
+ * A random password. See [admin][google.cloud.managedidentities.v1.Domain.admin] for more information.
+ *
+ * Generated from protobuf field string password = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setPassword($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->password = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Trust.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Trust.php
new file mode 100644
index 000000000000..637e3b32d72b
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Trust.php
@@ -0,0 +1,462 @@
+google.cloud.managedidentities.v1.Trust
+ */
+class Trust extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The fully qualified target domain name which will be in trust with the
+ * current domain.
+ *
+ * Generated from protobuf field string target_domain_name = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $target_domain_name = '';
+ /**
+ * Required. The type of trust represented by the trust resource.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust.TrustType trust_type = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $trust_type = 0;
+ /**
+ * Required. The trust direction, which decides if the current domain is trusted,
+ * trusting, or both.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust.TrustDirection trust_direction = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $trust_direction = 0;
+ /**
+ * Optional. The trust authentication type, which decides whether the trusted side has
+ * forest/domain wide access or selective access to an approved set of
+ * resources.
+ *
+ * Generated from protobuf field bool selective_authentication = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $selective_authentication = false;
+ /**
+ * Required. The target DNS server IP addresses which can resolve the remote domain
+ * involved in the trust.
+ *
+ * Generated from protobuf field repeated string target_dns_ip_addresses = 5 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $target_dns_ip_addresses;
+ /**
+ * Required. The trust secret used for the handshake with the target domain. This will
+ * not be stored.
+ *
+ * Generated from protobuf field string trust_handshake_secret = 6 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $trust_handshake_secret = '';
+ /**
+ * Output only. The time the instance was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The last update time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * Output only. The current state of the trust.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust.State state = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. Additional information about the current state of the trust, if available.
+ *
+ * Generated from protobuf field string state_description = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state_description = '';
+ /**
+ * Output only. The last heartbeat time when the trust was known to be connected.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp last_trust_heartbeat_time = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $last_trust_heartbeat_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $target_domain_name
+ * Required. The fully qualified target domain name which will be in trust with the
+ * current domain.
+ * @type int $trust_type
+ * Required. The type of trust represented by the trust resource.
+ * @type int $trust_direction
+ * Required. The trust direction, which decides if the current domain is trusted,
+ * trusting, or both.
+ * @type bool $selective_authentication
+ * Optional. The trust authentication type, which decides whether the trusted side has
+ * forest/domain wide access or selective access to an approved set of
+ * resources.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $target_dns_ip_addresses
+ * Required. The target DNS server IP addresses which can resolve the remote domain
+ * involved in the trust.
+ * @type string $trust_handshake_secret
+ * Required. The trust secret used for the handshake with the target domain. This will
+ * not be stored.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time the instance was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The last update time.
+ * @type int $state
+ * Output only. The current state of the trust.
+ * @type string $state_description
+ * Output only. Additional information about the current state of the trust, if available.
+ * @type \Google\Protobuf\Timestamp $last_trust_heartbeat_time
+ * Output only. The last heartbeat time when the trust was known to be connected.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedidentities\V1\Resource::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The fully qualified target domain name which will be in trust with the
+ * current domain.
+ *
+ * Generated from protobuf field string target_domain_name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getTargetDomainName()
+ {
+ return $this->target_domain_name;
+ }
+
+ /**
+ * Required. The fully qualified target domain name which will be in trust with the
+ * current domain.
+ *
+ * Generated from protobuf field string target_domain_name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setTargetDomainName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target_domain_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The type of trust represented by the trust resource.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust.TrustType trust_type = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getTrustType()
+ {
+ return $this->trust_type;
+ }
+
+ /**
+ * Required. The type of trust represented by the trust resource.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust.TrustType trust_type = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setTrustType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ManagedIdentities\V1\Trust\TrustType::class);
+ $this->trust_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The trust direction, which decides if the current domain is trusted,
+ * trusting, or both.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust.TrustDirection trust_direction = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getTrustDirection()
+ {
+ return $this->trust_direction;
+ }
+
+ /**
+ * Required. The trust direction, which decides if the current domain is trusted,
+ * trusting, or both.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust.TrustDirection trust_direction = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setTrustDirection($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ManagedIdentities\V1\Trust\TrustDirection::class);
+ $this->trust_direction = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The trust authentication type, which decides whether the trusted side has
+ * forest/domain wide access or selective access to an approved set of
+ * resources.
+ *
+ * Generated from protobuf field bool selective_authentication = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getSelectiveAuthentication()
+ {
+ return $this->selective_authentication;
+ }
+
+ /**
+ * Optional. The trust authentication type, which decides whether the trusted side has
+ * forest/domain wide access or selective access to an approved set of
+ * resources.
+ *
+ * Generated from protobuf field bool selective_authentication = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setSelectiveAuthentication($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->selective_authentication = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The target DNS server IP addresses which can resolve the remote domain
+ * involved in the trust.
+ *
+ * Generated from protobuf field repeated string target_dns_ip_addresses = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTargetDnsIpAddresses()
+ {
+ return $this->target_dns_ip_addresses;
+ }
+
+ /**
+ * Required. The target DNS server IP addresses which can resolve the remote domain
+ * involved in the trust.
+ *
+ * Generated from protobuf field repeated string target_dns_ip_addresses = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTargetDnsIpAddresses($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->target_dns_ip_addresses = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Required. The trust secret used for the handshake with the target domain. This will
+ * not be stored.
+ *
+ * Generated from protobuf field string trust_handshake_secret = 6 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getTrustHandshakeSecret()
+ {
+ return $this->trust_handshake_secret;
+ }
+
+ /**
+ * Required. The trust secret used for the handshake with the target domain. This will
+ * not be stored.
+ *
+ * Generated from protobuf field string trust_handshake_secret = 6 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setTrustHandshakeSecret($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->trust_handshake_secret = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time the instance was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The time the instance was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The last update time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The last update time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The current state of the trust.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust.State state = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the trust.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust.State state = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ManagedIdentities\V1\Trust\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Additional information about the current state of the trust, if available.
+ *
+ * Generated from protobuf field string state_description = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStateDescription()
+ {
+ return $this->state_description;
+ }
+
+ /**
+ * Output only. Additional information about the current state of the trust, if available.
+ *
+ * Generated from protobuf field string state_description = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStateDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->state_description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The last heartbeat time when the trust was known to be connected.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp last_trust_heartbeat_time = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getLastTrustHeartbeatTime()
+ {
+ return $this->last_trust_heartbeat_time;
+ }
+
+ public function hasLastTrustHeartbeatTime()
+ {
+ return isset($this->last_trust_heartbeat_time);
+ }
+
+ public function clearLastTrustHeartbeatTime()
+ {
+ unset($this->last_trust_heartbeat_time);
+ }
+
+ /**
+ * Output only. The last heartbeat time when the trust was known to be connected.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp last_trust_heartbeat_time = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setLastTrustHeartbeatTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->last_trust_heartbeat_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Trust/State.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Trust/State.php
new file mode 100644
index 000000000000..6c45c0cba0f6
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Trust/State.php
@@ -0,0 +1,85 @@
+google.cloud.managedidentities.v1.Trust.State
+ */
+class State
+{
+ /**
+ * Not set.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The domain trust is being created.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * The domain trust is being updated.
+ *
+ * Generated from protobuf enum UPDATING = 2;
+ */
+ const UPDATING = 2;
+ /**
+ * The domain trust is being deleted.
+ *
+ * Generated from protobuf enum DELETING = 3;
+ */
+ const DELETING = 3;
+ /**
+ * The domain trust is connected.
+ *
+ * Generated from protobuf enum CONNECTED = 4;
+ */
+ const CONNECTED = 4;
+ /**
+ * The domain trust is disconnected.
+ *
+ * Generated from protobuf enum DISCONNECTED = 5;
+ */
+ const DISCONNECTED = 5;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::UPDATING => 'UPDATING',
+ self::DELETING => 'DELETING',
+ self::CONNECTED => 'CONNECTED',
+ self::DISCONNECTED => 'DISCONNECTED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(State::class, \Google\Cloud\ManagedIdentities\V1\Trust_State::class);
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Trust/TrustDirection.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Trust/TrustDirection.php
new file mode 100644
index 000000000000..1eedb6a50162
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Trust/TrustDirection.php
@@ -0,0 +1,74 @@
+google.cloud.managedidentities.v1.Trust.TrustDirection
+ */
+class TrustDirection
+{
+ /**
+ * Not set.
+ *
+ * Generated from protobuf enum TRUST_DIRECTION_UNSPECIFIED = 0;
+ */
+ const TRUST_DIRECTION_UNSPECIFIED = 0;
+ /**
+ * The inbound direction represents the trusting side.
+ *
+ * Generated from protobuf enum INBOUND = 1;
+ */
+ const INBOUND = 1;
+ /**
+ * The outboud direction represents the trusted side.
+ *
+ * Generated from protobuf enum OUTBOUND = 2;
+ */
+ const OUTBOUND = 2;
+ /**
+ * The bidirectional direction represents the trusted / trusting side.
+ *
+ * Generated from protobuf enum BIDIRECTIONAL = 3;
+ */
+ const BIDIRECTIONAL = 3;
+
+ private static $valueToName = [
+ self::TRUST_DIRECTION_UNSPECIFIED => 'TRUST_DIRECTION_UNSPECIFIED',
+ self::INBOUND => 'INBOUND',
+ self::OUTBOUND => 'OUTBOUND',
+ self::BIDIRECTIONAL => 'BIDIRECTIONAL',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(TrustDirection::class, \Google\Cloud\ManagedIdentities\V1\Trust_TrustDirection::class);
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Trust/TrustType.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Trust/TrustType.php
new file mode 100644
index 000000000000..33b99c2807f4
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/Trust/TrustType.php
@@ -0,0 +1,64 @@
+google.cloud.managedidentities.v1.Trust.TrustType
+ */
+class TrustType
+{
+ /**
+ * Not set.
+ *
+ * Generated from protobuf enum TRUST_TYPE_UNSPECIFIED = 0;
+ */
+ const TRUST_TYPE_UNSPECIFIED = 0;
+ /**
+ * The forest trust.
+ *
+ * Generated from protobuf enum FOREST = 1;
+ */
+ const FOREST = 1;
+ /**
+ * The external domain trust.
+ *
+ * Generated from protobuf enum EXTERNAL = 2;
+ */
+ const EXTERNAL = 2;
+
+ private static $valueToName = [
+ self::TRUST_TYPE_UNSPECIFIED => 'TRUST_TYPE_UNSPECIFIED',
+ self::FOREST => 'FOREST',
+ self::EXTERNAL => 'EXTERNAL',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(TrustType::class, \Google\Cloud\ManagedIdentities\V1\Trust_TrustType::class);
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/UpdateDomainRequest.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/UpdateDomainRequest.php
new file mode 100644
index 000000000000..35eceef3d024
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/UpdateDomainRequest.php
@@ -0,0 +1,167 @@
+google.cloud.managedidentities.v1.UpdateDomainRequest
+ */
+class UpdateDomainRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Mask of fields to update. At least one path must be supplied in this
+ * field. The elements of the repeated paths field may only include
+ * fields from [Domain][google.cloud.managedidentities.v1.Domain]:
+ * * `labels`
+ * * `locations`
+ * * `authorized_networks`
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. Domain message with updated fields. Only supported fields specified in
+ * update_mask are updated.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Domain domain = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $domain = null;
+
+ /**
+ * @param \Google\Cloud\ManagedIdentities\V1\Domain $domain Required. Domain message with updated fields. Only supported fields specified in
+ * update_mask are updated.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Mask of fields to update. At least one path must be supplied in this
+ * field. The elements of the repeated paths field may only include
+ * fields from [Domain][google.cloud.managedidentities.v1.Domain]:
+ * * `labels`
+ * * `locations`
+ * * `authorized_networks`
+ *
+ * @return \Google\Cloud\ManagedIdentities\V1\UpdateDomainRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\ManagedIdentities\V1\Domain $domain, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setDomain($domain)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Mask of fields to update. At least one path must be supplied in this
+ * field. The elements of the repeated paths field may only include
+ * fields from [Domain][google.cloud.managedidentities.v1.Domain]:
+ * * `labels`
+ * * `locations`
+ * * `authorized_networks`
+ * @type \Google\Cloud\ManagedIdentities\V1\Domain $domain
+ * Required. Domain message with updated fields. Only supported fields specified in
+ * update_mask are updated.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedidentities\V1\ManagedIdentitiesService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Mask of fields to update. At least one path must be supplied in this
+ * field. The elements of the repeated paths field may only include
+ * fields from [Domain][google.cloud.managedidentities.v1.Domain]:
+ * * `labels`
+ * * `locations`
+ * * `authorized_networks`
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Mask of fields to update. At least one path must be supplied in this
+ * field. The elements of the repeated paths field may only include
+ * fields from [Domain][google.cloud.managedidentities.v1.Domain]:
+ * * `labels`
+ * * `locations`
+ * * `authorized_networks`
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Domain message with updated fields. Only supported fields specified in
+ * update_mask are updated.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Domain domain = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ManagedIdentities\V1\Domain|null
+ */
+ public function getDomain()
+ {
+ return $this->domain;
+ }
+
+ public function hasDomain()
+ {
+ return isset($this->domain);
+ }
+
+ public function clearDomain()
+ {
+ unset($this->domain);
+ }
+
+ /**
+ * Required. Domain message with updated fields. Only supported fields specified in
+ * update_mask are updated.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Domain domain = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ManagedIdentities\V1\Domain $var
+ * @return $this
+ */
+ public function setDomain($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ManagedIdentities\V1\Domain::class);
+ $this->domain = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ValidateTrustRequest.php b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ValidateTrustRequest.php
new file mode 100644
index 000000000000..da322c4a9393
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/proto/src/Google/Cloud/ManagedIdentities/V1/ValidateTrustRequest.php
@@ -0,0 +1,133 @@
+google.cloud.managedidentities.v1.ValidateTrustRequest
+ */
+class ValidateTrustRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource domain name, project name, and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. The domain trust to validate trust state for.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust trust = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $trust = null;
+
+ /**
+ * @param string $name Required. The resource domain name, project name, and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ * Please see {@see ManagedIdentitiesServiceClient::domainName()} for help formatting this field.
+ * @param \Google\Cloud\ManagedIdentities\V1\Trust $trust Required. The domain trust to validate trust state for.
+ *
+ * @return \Google\Cloud\ManagedIdentities\V1\ValidateTrustRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name, \Google\Cloud\ManagedIdentities\V1\Trust $trust): self
+ {
+ return (new self())
+ ->setName($name)
+ ->setTrust($trust);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The resource domain name, project name, and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ * @type \Google\Cloud\ManagedIdentities\V1\Trust $trust
+ * Required. The domain trust to validate trust state for.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedidentities\V1\ManagedIdentitiesService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource domain name, project name, and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The resource domain name, project name, and location using the form:
+ * `projects/{project_id}/locations/global/domains/{domain_name}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The domain trust to validate trust state for.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust trust = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ManagedIdentities\V1\Trust|null
+ */
+ public function getTrust()
+ {
+ return $this->trust;
+ }
+
+ public function hasTrust()
+ {
+ return isset($this->trust);
+ }
+
+ public function clearTrust()
+ {
+ unset($this->trust);
+ }
+
+ /**
+ * Required. The domain trust to validate trust state for.
+ *
+ * Generated from protobuf field .google.cloud.managedidentities.v1.Trust trust = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ManagedIdentities\V1\Trust $var
+ * @return $this
+ */
+ public function setTrust($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ManagedIdentities\V1\Trust::class);
+ $this->trust = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/attach_trust.php b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/attach_trust.php
new file mode 100644
index 000000000000..6478dfaf4a80
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/attach_trust.php
@@ -0,0 +1,122 @@
+setTargetDomainName($trustTargetDomainName)
+ ->setTrustType($trustTrustType)
+ ->setTrustDirection($trustTrustDirection)
+ ->setTargetDnsIpAddresses($trustTargetDnsIpAddresses)
+ ->setTrustHandshakeSecret($trustTrustHandshakeSecret);
+ $request = (new AttachTrustRequest())
+ ->setName($formattedName)
+ ->setTrust($trust);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $managedIdentitiesServiceClient->attachTrust($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Domain $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ManagedIdentitiesServiceClient::domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $trustTargetDomainName = '[TARGET_DOMAIN_NAME]';
+ $trustTrustType = TrustType::TRUST_TYPE_UNSPECIFIED;
+ $trustTrustDirection = TrustDirection::TRUST_DIRECTION_UNSPECIFIED;
+ $trustTargetDnsIpAddressesElement = '[TARGET_DNS_IP_ADDRESSES]';
+ $trustTrustHandshakeSecret = '[TRUST_HANDSHAKE_SECRET]';
+
+ attach_trust_sample(
+ $formattedName,
+ $trustTargetDomainName,
+ $trustTrustType,
+ $trustTrustDirection,
+ $trustTargetDnsIpAddressesElement,
+ $trustTrustHandshakeSecret
+ );
+}
+// [END managedidentities_v1_generated_ManagedIdentitiesService_AttachTrust_sync]
diff --git a/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/create_microsoft_ad_domain.php b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/create_microsoft_ad_domain.php
new file mode 100644
index 000000000000..4e74f2a1db34
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/create_microsoft_ad_domain.php
@@ -0,0 +1,129 @@
+setName($domainName)
+ ->setReservedIpRange($domainReservedIpRange)
+ ->setLocations($domainLocations);
+ $request = (new CreateMicrosoftAdDomainRequest())
+ ->setParent($formattedParent)
+ ->setDomainName($domainName)
+ ->setDomain($domain);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $managedIdentitiesServiceClient->createMicrosoftAdDomain($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Domain $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ManagedIdentitiesServiceClient::locationName('[PROJECT]', '[LOCATION]');
+ $domainName = '[DOMAIN_NAME]';
+ $domainName = '[NAME]';
+ $domainReservedIpRange = '[RESERVED_IP_RANGE]';
+ $domainLocationsElement = '[LOCATIONS]';
+
+ create_microsoft_ad_domain_sample(
+ $formattedParent,
+ $domainName,
+ $domainName,
+ $domainReservedIpRange,
+ $domainLocationsElement
+ );
+}
+// [END managedidentities_v1_generated_ManagedIdentitiesService_CreateMicrosoftAdDomain_sync]
diff --git a/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/delete_domain.php b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/delete_domain.php
new file mode 100644
index 000000000000..20c8a8a12a1b
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/delete_domain.php
@@ -0,0 +1,81 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $managedIdentitiesServiceClient->deleteDomain($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ManagedIdentitiesServiceClient::domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+
+ delete_domain_sample($formattedName);
+}
+// [END managedidentities_v1_generated_ManagedIdentitiesService_DeleteDomain_sync]
diff --git a/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/detach_trust.php b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/detach_trust.php
new file mode 100644
index 000000000000..e287c2ee6b28
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/detach_trust.php
@@ -0,0 +1,122 @@
+setTargetDomainName($trustTargetDomainName)
+ ->setTrustType($trustTrustType)
+ ->setTrustDirection($trustTrustDirection)
+ ->setTargetDnsIpAddresses($trustTargetDnsIpAddresses)
+ ->setTrustHandshakeSecret($trustTrustHandshakeSecret);
+ $request = (new DetachTrustRequest())
+ ->setName($formattedName)
+ ->setTrust($trust);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $managedIdentitiesServiceClient->detachTrust($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Domain $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ManagedIdentitiesServiceClient::domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $trustTargetDomainName = '[TARGET_DOMAIN_NAME]';
+ $trustTrustType = TrustType::TRUST_TYPE_UNSPECIFIED;
+ $trustTrustDirection = TrustDirection::TRUST_DIRECTION_UNSPECIFIED;
+ $trustTargetDnsIpAddressesElement = '[TARGET_DNS_IP_ADDRESSES]';
+ $trustTrustHandshakeSecret = '[TRUST_HANDSHAKE_SECRET]';
+
+ detach_trust_sample(
+ $formattedName,
+ $trustTargetDomainName,
+ $trustTrustType,
+ $trustTrustDirection,
+ $trustTargetDnsIpAddressesElement,
+ $trustTrustHandshakeSecret
+ );
+}
+// [END managedidentities_v1_generated_ManagedIdentitiesService_DetachTrust_sync]
diff --git a/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/get_domain.php b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/get_domain.php
new file mode 100644
index 000000000000..7a6b49fa1482
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/get_domain.php
@@ -0,0 +1,72 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Domain $response */
+ $response = $managedIdentitiesServiceClient->getDomain($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ManagedIdentitiesServiceClient::domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+
+ get_domain_sample($formattedName);
+}
+// [END managedidentities_v1_generated_ManagedIdentitiesService_GetDomain_sync]
diff --git a/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/list_domains.php b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/list_domains.php
new file mode 100644
index 000000000000..71f27124492a
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/list_domains.php
@@ -0,0 +1,77 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $managedIdentitiesServiceClient->listDomains($request);
+
+ /** @var Domain $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ManagedIdentitiesServiceClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_domains_sample($formattedParent);
+}
+// [END managedidentities_v1_generated_ManagedIdentitiesService_ListDomains_sync]
diff --git a/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/reconfigure_trust.php b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/reconfigure_trust.php
new file mode 100644
index 000000000000..fc3405ce881b
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/reconfigure_trust.php
@@ -0,0 +1,96 @@
+setName($formattedName)
+ ->setTargetDomainName($targetDomainName)
+ ->setTargetDnsIpAddresses($targetDnsIpAddresses);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $managedIdentitiesServiceClient->reconfigureTrust($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Domain $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ManagedIdentitiesServiceClient::domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $targetDomainName = '[TARGET_DOMAIN_NAME]';
+ $targetDnsIpAddressesElement = '[TARGET_DNS_IP_ADDRESSES]';
+
+ reconfigure_trust_sample($formattedName, $targetDomainName, $targetDnsIpAddressesElement);
+}
+// [END managedidentities_v1_generated_ManagedIdentitiesService_ReconfigureTrust_sync]
diff --git a/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/reset_admin_password.php b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/reset_admin_password.php
new file mode 100644
index 000000000000..6dcf28503934
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/reset_admin_password.php
@@ -0,0 +1,72 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ResetAdminPasswordResponse $response */
+ $response = $managedIdentitiesServiceClient->resetAdminPassword($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ManagedIdentitiesServiceClient::domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+
+ reset_admin_password_sample($formattedName);
+}
+// [END managedidentities_v1_generated_ManagedIdentitiesService_ResetAdminPassword_sync]
diff --git a/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/update_domain.php b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/update_domain.php
new file mode 100644
index 000000000000..94032efa618e
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/update_domain.php
@@ -0,0 +1,105 @@
+setName($domainName)
+ ->setReservedIpRange($domainReservedIpRange)
+ ->setLocations($domainLocations);
+ $request = (new UpdateDomainRequest())
+ ->setUpdateMask($updateMask)
+ ->setDomain($domain);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $managedIdentitiesServiceClient->updateDomain($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Domain $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $domainName = '[NAME]';
+ $domainReservedIpRange = '[RESERVED_IP_RANGE]';
+ $domainLocationsElement = '[LOCATIONS]';
+
+ update_domain_sample($domainName, $domainReservedIpRange, $domainLocationsElement);
+}
+// [END managedidentities_v1_generated_ManagedIdentitiesService_UpdateDomain_sync]
diff --git a/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/validate_trust.php b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/validate_trust.php
new file mode 100644
index 000000000000..da23c9ce0f8b
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/samples/V1/ManagedIdentitiesServiceClient/validate_trust.php
@@ -0,0 +1,123 @@
+setTargetDomainName($trustTargetDomainName)
+ ->setTrustType($trustTrustType)
+ ->setTrustDirection($trustTrustDirection)
+ ->setTargetDnsIpAddresses($trustTargetDnsIpAddresses)
+ ->setTrustHandshakeSecret($trustTrustHandshakeSecret);
+ $request = (new ValidateTrustRequest())
+ ->setName($formattedName)
+ ->setTrust($trust);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $managedIdentitiesServiceClient->validateTrust($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Domain $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ManagedIdentitiesServiceClient::domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $trustTargetDomainName = '[TARGET_DOMAIN_NAME]';
+ $trustTrustType = TrustType::TRUST_TYPE_UNSPECIFIED;
+ $trustTrustDirection = TrustDirection::TRUST_DIRECTION_UNSPECIFIED;
+ $trustTargetDnsIpAddressesElement = '[TARGET_DNS_IP_ADDRESSES]';
+ $trustTrustHandshakeSecret = '[TRUST_HANDSHAKE_SECRET]';
+
+ validate_trust_sample(
+ $formattedName,
+ $trustTargetDomainName,
+ $trustTrustType,
+ $trustTrustDirection,
+ $trustTargetDnsIpAddressesElement,
+ $trustTrustHandshakeSecret
+ );
+}
+// [END managedidentities_v1_generated_ManagedIdentitiesService_ValidateTrust_sync]
diff --git a/owl-bot-staging/ManagedIdentities/v1/src/V1/Client/ManagedIdentitiesServiceClient.php b/owl-bot-staging/ManagedIdentities/v1/src/V1/Client/ManagedIdentitiesServiceClient.php
new file mode 100644
index 000000000000..3548e741d59f
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/src/V1/Client/ManagedIdentitiesServiceClient.php
@@ -0,0 +1,607 @@
+ attachTrustAsync(AttachTrustRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createMicrosoftAdDomainAsync(CreateMicrosoftAdDomainRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteDomainAsync(DeleteDomainRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface detachTrustAsync(DetachTrustRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getDomainAsync(GetDomainRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listDomainsAsync(ListDomainsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface reconfigureTrustAsync(ReconfigureTrustRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface resetAdminPasswordAsync(ResetAdminPasswordRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateDomainAsync(UpdateDomainRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface validateTrustAsync(ValidateTrustRequest $request, array $optionalArgs = [])
+ */
+final class ManagedIdentitiesServiceClient
+{
+ use GapicClientTrait;
+ use ResourceHelperTrait;
+
+ /** The name of the service. */
+ private const SERVICE_NAME = 'google.cloud.managedidentities.v1.ManagedIdentitiesService';
+
+ /**
+ * The default address of the service.
+ *
+ * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead.
+ */
+ private const SERVICE_ADDRESS = 'managedidentities.googleapis.com';
+
+ /** The address template of the service. */
+ private const SERVICE_ADDRESS_TEMPLATE = 'managedidentities.UNIVERSE_DOMAIN';
+
+ /** The default port of the service. */
+ private const DEFAULT_SERVICE_PORT = 443;
+
+ /** The name of the code generator, to be included in the agent header. */
+ private const CODEGEN_NAME = 'gapic';
+
+ /** The default scopes required by the service. */
+ public static $serviceScopes = [
+ 'https://www.googleapis.com/auth/cloud-platform',
+ ];
+
+ private $operationsClient;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/managed_identities_service_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/managed_identities_service_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/managed_identities_service_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/managed_identities_service_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Return an OperationsClient object with the same endpoint as $this.
+ *
+ * @return OperationsClient
+ */
+ public function getOperationsClient()
+ {
+ return $this->operationsClient;
+ }
+
+ /**
+ * Resume an existing long running operation that was previously started by a long
+ * running API method. If $methodName is not provided, or does not match a long
+ * running API method, then the operation can still be resumed, but the
+ * OperationResponse object will not deserialize the final response.
+ *
+ * @param string $operationName The name of the long running operation
+ * @param string $methodName The name of the method used to start the operation
+ *
+ * @return OperationResponse
+ */
+ public function resumeOperation($operationName, $methodName = null)
+ {
+ $options = isset($this->descriptors[$methodName]['longRunning']) ? $this->descriptors[$methodName]['longRunning'] : [];
+ $operation = new OperationResponse($operationName, $this->getOperationsClient(), $options);
+ $operation->reload();
+ return $operation;
+ }
+
+ /**
+ * Create the default operation client for the service.
+ *
+ * @param array $options ClientOptions for the client.
+ *
+ * @return OperationsClient
+ */
+ private function createOperationsClient(array $options)
+ {
+ // Unset client-specific configuration options
+ unset($options['serviceName'], $options['clientConfig'], $options['descriptorsConfigPath']);
+
+ if (isset($options['operationsClient'])) {
+ return $options['operationsClient'];
+ }
+
+ return new OperationsClient($options);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a domain
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $domain
+ *
+ * @return string The formatted domain resource.
+ */
+ public static function domainName(string $project, string $location, string $domain): string
+ {
+ return self::getPathTemplate('domain')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'domain' => $domain,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a location
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ *
+ * @return string The formatted location resource.
+ */
+ public static function locationName(string $project, string $location): string
+ {
+ return self::getPathTemplate('location')->render([
+ 'project' => $project,
+ 'location' => $location,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - domain: projects/{project}/locations/{location}/domains/{domain}
+ * - location: projects/{project}/locations/{location}
+ *
+ * The optional $template argument can be supplied to specify a particular pattern,
+ * and must match one of the templates listed above. If no $template argument is
+ * provided, or if the $template argument does not match one of the templates
+ * listed, then parseName will check each of the supported templates, and return
+ * the first match.
+ *
+ * @param string $formattedName The formatted name string
+ * @param ?string $template Optional name of template to match
+ *
+ * @return array An associative array from name component IDs to component values.
+ *
+ * @throws ValidationException If $formattedName could not be matched.
+ */
+ public static function parseName(string $formattedName, ?string $template = null): array
+ {
+ return self::parseFormattedName($formattedName, $template);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $options {
+ * Optional. Options for configuring the service API wrapper.
+ *
+ * @type string $apiEndpoint
+ * The address of the API remote host. May optionally include the port, formatted
+ * as ":". Default 'managedidentities.googleapis.com:443'.
+ * @type string|array|FetchAuthTokenInterface|CredentialsWrapper $credentials
+ * The credentials to be used by the client to authorize API calls. This option
+ * accepts either a path to a credentials file, or a decoded credentials file as a
+ * PHP array.
+ * *Advanced usage*: In addition, this option can also accept a pre-constructed
+ * {@see \Google\Auth\FetchAuthTokenInterface} object or
+ * {@see \Google\ApiCore\CredentialsWrapper} object. Note that when one of these
+ * objects are provided, any settings in $credentialsConfig will be ignored.
+ * @type array $credentialsConfig
+ * Options used to configure credentials, including auth token caching, for the
+ * client. For a full list of supporting configuration options, see
+ * {@see \Google\ApiCore\CredentialsWrapper::build()} .
+ * @type bool $disableRetries
+ * Determines whether or not retries defined by the client configuration should be
+ * disabled. Defaults to `false`.
+ * @type string|array $clientConfig
+ * Client method configuration, including retry settings. This option can be either
+ * a path to a JSON file, or a PHP array containing the decoded JSON data. By
+ * default this settings points to the default client config file, which is
+ * provided in the resources folder.
+ * @type string|TransportInterface $transport
+ * The transport used for executing network requests. May be either the string
+ * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system.
+ * *Advanced usage*: Additionally, it is possible to pass in an already
+ * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note
+ * that when this object is provided, any settings in $transportConfig, and any
+ * $apiEndpoint setting, will be ignored.
+ * @type array $transportConfig
+ * Configuration options that will be used to construct the transport. Options for
+ * each supported transport type should be passed in a key for that transport. For
+ * example:
+ * $transportConfig = [
+ * 'grpc' => [...],
+ * 'rest' => [...],
+ * ];
+ * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and
+ * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the
+ * supported options.
+ * @type callable $clientCertSource
+ * A callable which returns the client cert as a string. This can be used to
+ * provide a certificate and private key to the transport layer for mTLS.
+ * @type false|LoggerInterface $logger
+ * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the
+ * 'GOOGLE_SDK_PHP_LOGGING' environment flag
+ * }
+ *
+ * @throws ValidationException
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ $this->operationsClient = $this->createOperationsClient($clientOptions);
+ }
+
+ /** Handles execution of the async variants for each documented method. */
+ public function __call($method, $args)
+ {
+ if (substr($method, -5) !== 'Async') {
+ trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR);
+ }
+
+ array_unshift($args, substr($method, 0, -5));
+ return call_user_func_array([$this, 'startAsyncCall'], $args);
+ }
+
+ /**
+ * Adds an AD trust to a domain.
+ *
+ * The async variant is {@see ManagedIdentitiesServiceClient::attachTrustAsync()} .
+ *
+ * @example samples/V1/ManagedIdentitiesServiceClient/attach_trust.php
+ *
+ * @param AttachTrustRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function attachTrust(AttachTrustRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('AttachTrust', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a Microsoft AD domain.
+ *
+ * The async variant is
+ * {@see ManagedIdentitiesServiceClient::createMicrosoftAdDomainAsync()} .
+ *
+ * @example samples/V1/ManagedIdentitiesServiceClient/create_microsoft_ad_domain.php
+ *
+ * @param CreateMicrosoftAdDomainRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createMicrosoftAdDomain(CreateMicrosoftAdDomainRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateMicrosoftAdDomain', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a domain.
+ *
+ * The async variant is {@see ManagedIdentitiesServiceClient::deleteDomainAsync()}
+ * .
+ *
+ * @example samples/V1/ManagedIdentitiesServiceClient/delete_domain.php
+ *
+ * @param DeleteDomainRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteDomain(DeleteDomainRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteDomain', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Removes an AD trust.
+ *
+ * The async variant is {@see ManagedIdentitiesServiceClient::detachTrustAsync()} .
+ *
+ * @example samples/V1/ManagedIdentitiesServiceClient/detach_trust.php
+ *
+ * @param DetachTrustRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function detachTrust(DetachTrustRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DetachTrust', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets information about a domain.
+ *
+ * The async variant is {@see ManagedIdentitiesServiceClient::getDomainAsync()} .
+ *
+ * @example samples/V1/ManagedIdentitiesServiceClient/get_domain.php
+ *
+ * @param GetDomainRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Domain
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getDomain(GetDomainRequest $request, array $callOptions = []): Domain
+ {
+ return $this->startApiCall('GetDomain', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists domains in a project.
+ *
+ * The async variant is {@see ManagedIdentitiesServiceClient::listDomainsAsync()} .
+ *
+ * @example samples/V1/ManagedIdentitiesServiceClient/list_domains.php
+ *
+ * @param ListDomainsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listDomains(ListDomainsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListDomains', $request, $callOptions);
+ }
+
+ /**
+ * Updates the DNS conditional forwarder.
+ *
+ * The async variant is
+ * {@see ManagedIdentitiesServiceClient::reconfigureTrustAsync()} .
+ *
+ * @example samples/V1/ManagedIdentitiesServiceClient/reconfigure_trust.php
+ *
+ * @param ReconfigureTrustRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function reconfigureTrust(ReconfigureTrustRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('ReconfigureTrust', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Resets a domain's administrator password.
+ *
+ * The async variant is
+ * {@see ManagedIdentitiesServiceClient::resetAdminPasswordAsync()} .
+ *
+ * @example samples/V1/ManagedIdentitiesServiceClient/reset_admin_password.php
+ *
+ * @param ResetAdminPasswordRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return ResetAdminPasswordResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function resetAdminPassword(ResetAdminPasswordRequest $request, array $callOptions = []): ResetAdminPasswordResponse
+ {
+ return $this->startApiCall('ResetAdminPassword', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates the metadata and configuration of a domain.
+ *
+ * The async variant is {@see ManagedIdentitiesServiceClient::updateDomainAsync()}
+ * .
+ *
+ * @example samples/V1/ManagedIdentitiesServiceClient/update_domain.php
+ *
+ * @param UpdateDomainRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateDomain(UpdateDomainRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('UpdateDomain', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Validates a trust state, that the target domain is reachable, and that the
+ * target domain is able to accept incoming trust requests.
+ *
+ * The async variant is {@see ManagedIdentitiesServiceClient::validateTrustAsync()}
+ * .
+ *
+ * @example samples/V1/ManagedIdentitiesServiceClient/validate_trust.php
+ *
+ * @param ValidateTrustRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function validateTrust(ValidateTrustRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('ValidateTrust', $request, $callOptions)->wait();
+ }
+}
diff --git a/owl-bot-staging/ManagedIdentities/v1/src/V1/gapic_metadata.json b/owl-bot-staging/ManagedIdentities/v1/src/V1/gapic_metadata.json
new file mode 100644
index 000000000000..ceace87a4fb2
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/src/V1/gapic_metadata.json
@@ -0,0 +1,68 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.cloud.managedidentities.v1",
+ "libraryPackage": "Google\\Cloud\\ManagedIdentities\\V1",
+ "services": {
+ "ManagedIdentitiesService": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "ManagedIdentitiesServiceGapicClient",
+ "rpcs": {
+ "AttachTrust": {
+ "methods": [
+ "attachTrust"
+ ]
+ },
+ "CreateMicrosoftAdDomain": {
+ "methods": [
+ "createMicrosoftAdDomain"
+ ]
+ },
+ "DeleteDomain": {
+ "methods": [
+ "deleteDomain"
+ ]
+ },
+ "DetachTrust": {
+ "methods": [
+ "detachTrust"
+ ]
+ },
+ "GetDomain": {
+ "methods": [
+ "getDomain"
+ ]
+ },
+ "ListDomains": {
+ "methods": [
+ "listDomains"
+ ]
+ },
+ "ReconfigureTrust": {
+ "methods": [
+ "reconfigureTrust"
+ ]
+ },
+ "ResetAdminPassword": {
+ "methods": [
+ "resetAdminPassword"
+ ]
+ },
+ "UpdateDomain": {
+ "methods": [
+ "updateDomain"
+ ]
+ },
+ "ValidateTrust": {
+ "methods": [
+ "validateTrust"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/owl-bot-staging/ManagedIdentities/v1/src/V1/resources/managed_identities_service_client_config.json b/owl-bot-staging/ManagedIdentities/v1/src/V1/resources/managed_identities_service_client_config.json
new file mode 100644
index 000000000000..6dc854819889
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/src/V1/resources/managed_identities_service_client_config.json
@@ -0,0 +1,82 @@
+{
+ "interfaces": {
+ "google.cloud.managedidentities.v1.ManagedIdentitiesService": {
+ "retry_codes": {
+ "no_retry_codes": [],
+ "no_retry_1_codes": []
+ },
+ "retry_params": {
+ "no_retry_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 0,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 0,
+ "total_timeout_millis": 0
+ },
+ "no_retry_1_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 60000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 60000,
+ "total_timeout_millis": 60000
+ }
+ },
+ "methods": {
+ "AttachTrust": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateMicrosoftAdDomain": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteDomain": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DetachTrust": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetDomain": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListDomains": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ReconfigureTrust": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ResetAdminPassword": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateDomain": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ValidateTrust": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/ManagedIdentities/v1/src/V1/resources/managed_identities_service_descriptor_config.php b/owl-bot-staging/ManagedIdentities/v1/src/V1/resources/managed_identities_service_descriptor_config.php
new file mode 100644
index 000000000000..f5f9c7931585
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/src/V1/resources/managed_identities_service_descriptor_config.php
@@ -0,0 +1,210 @@
+ [
+ 'google.cloud.managedidentities.v1.ManagedIdentitiesService' => [
+ 'AttachTrust' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\ManagedIdentities\V1\Domain',
+ 'metadataReturnType' => '\Google\Cloud\ManagedIdentities\V1\OpMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'CreateMicrosoftAdDomain' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\ManagedIdentities\V1\Domain',
+ 'metadataReturnType' => '\Google\Cloud\ManagedIdentities\V1\OpMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteDomain' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\ManagedIdentities\V1\OpMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DetachTrust' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\ManagedIdentities\V1\Domain',
+ 'metadataReturnType' => '\Google\Cloud\ManagedIdentities\V1\OpMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ReconfigureTrust' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\ManagedIdentities\V1\Domain',
+ 'metadataReturnType' => '\Google\Cloud\ManagedIdentities\V1\OpMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateDomain' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\ManagedIdentities\V1\Domain',
+ 'metadataReturnType' => '\Google\Cloud\ManagedIdentities\V1\OpMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'domain.name',
+ 'fieldAccessors' => [
+ 'getDomain',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ValidateTrust' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\ManagedIdentities\V1\Domain',
+ 'metadataReturnType' => '\Google\Cloud\ManagedIdentities\V1\OpMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetDomain' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ManagedIdentities\V1\Domain',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListDomains' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getDomains',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ManagedIdentities\V1\ListDomainsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ResetAdminPassword' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ManagedIdentities\V1\ResetAdminPasswordResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'templateMap' => [
+ 'domain' => 'projects/{project}/locations/{location}/domains/{domain}',
+ 'location' => 'projects/{project}/locations/{location}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/ManagedIdentities/v1/src/V1/resources/managed_identities_service_rest_client_config.php b/owl-bot-staging/ManagedIdentities/v1/src/V1/resources/managed_identities_service_rest_client_config.php
new file mode 100644
index 000000000000..5a26dbcf0866
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/src/V1/resources/managed_identities_service_rest_client_config.php
@@ -0,0 +1,295 @@
+ [
+ 'google.cloud.location.Locations' => [
+ 'GetLocation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListLocations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*}/locations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.cloud.managedidentities.v1.ManagedIdentitiesService' => [
+ 'AttachTrust' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/global/domains/*}:attachTrust',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'CreateMicrosoftAdDomain' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/global}/domains',
+ 'body' => 'domain',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'domain_name',
+ ],
+ ],
+ 'DeleteDomain' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/global/domains/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DetachTrust' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/global/domains/*}:detachTrust',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetDomain' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/global/domains/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListDomains' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/global}/domains',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ReconfigureTrust' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/global/domains/*}:reconfigureTrust',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ResetAdminPassword' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/global/domains/*}:resetAdminPassword',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateDomain' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{domain.name=projects/*/locations/global/domains/*}',
+ 'body' => 'domain',
+ 'placeholders' => [
+ 'domain.name' => [
+ 'getters' => [
+ 'getDomain',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'ValidateTrust' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/global/domains/*}:validateTrust',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.iam.v1.IAMPolicy' => [
+ 'GetIamPolicy' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/global/domains/*}:getIamPolicy',
+ 'additionalBindings' => [
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/global/peerings/*}:getIamPolicy',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/global/domains/*/backups/*}:getIamPolicy',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'SetIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/global/domains/*}:setIamPolicy',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/global/peerings/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/global/domains/*/backups/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/global/domains/*}:testIamPermissions',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/global/peerings/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/global/domains/*/backups/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.longrunning.Operations' => [
+ 'CancelOperation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/global/operations/*}:cancel',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteOperation' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/global/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetOperation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/global/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListOperations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/global/operations}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/ManagedIdentities/v1/tests/Unit/V1/Client/ManagedIdentitiesServiceClientTest.php b/owl-bot-staging/ManagedIdentities/v1/tests/Unit/V1/Client/ManagedIdentitiesServiceClientTest.php
new file mode 100644
index 000000000000..db9009a4d3f0
--- /dev/null
+++ b/owl-bot-staging/ManagedIdentities/v1/tests/Unit/V1/Client/ManagedIdentitiesServiceClientTest.php
@@ -0,0 +1,1417 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return ManagedIdentitiesServiceClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new ManagedIdentitiesServiceClient($options);
+ }
+
+ /** @test */
+ public function attachTrustTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/attachTrustTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name2 = 'name2-1052831874';
+ $reservedIpRange = 'reservedIpRange-1082940580';
+ $admin = 'admin92668751';
+ $fqdn = 'fqdn3150485';
+ $statusMessage = 'statusMessage-239442758';
+ $expectedResponse = new Domain();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setReservedIpRange($reservedIpRange);
+ $expectedResponse->setAdmin($admin);
+ $expectedResponse->setFqdn($fqdn);
+ $expectedResponse->setStatusMessage($statusMessage);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/attachTrustTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $trust = new Trust();
+ $trustTargetDomainName = 'trustTargetDomainName-39985064';
+ $trust->setTargetDomainName($trustTargetDomainName);
+ $trustTrustType = TrustType::TRUST_TYPE_UNSPECIFIED;
+ $trust->setTrustType($trustTrustType);
+ $trustTrustDirection = TrustDirection::TRUST_DIRECTION_UNSPECIFIED;
+ $trust->setTrustDirection($trustTrustDirection);
+ $trustTargetDnsIpAddresses = [];
+ $trust->setTargetDnsIpAddresses($trustTargetDnsIpAddresses);
+ $trustTrustHandshakeSecret = 'trustTrustHandshakeSecret-1896647033';
+ $trust->setTrustHandshakeSecret($trustTrustHandshakeSecret);
+ $request = (new AttachTrustRequest())
+ ->setName($formattedName)
+ ->setTrust($trust);
+ $response = $gapicClient->attachTrust($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedidentities.v1.ManagedIdentitiesService/AttachTrust', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualApiRequestObject->getTrust();
+ $this->assertProtobufEquals($trust, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/attachTrustTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function attachTrustExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/attachTrustTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $trust = new Trust();
+ $trustTargetDomainName = 'trustTargetDomainName-39985064';
+ $trust->setTargetDomainName($trustTargetDomainName);
+ $trustTrustType = TrustType::TRUST_TYPE_UNSPECIFIED;
+ $trust->setTrustType($trustTrustType);
+ $trustTrustDirection = TrustDirection::TRUST_DIRECTION_UNSPECIFIED;
+ $trust->setTrustDirection($trustTrustDirection);
+ $trustTargetDnsIpAddresses = [];
+ $trust->setTargetDnsIpAddresses($trustTargetDnsIpAddresses);
+ $trustTrustHandshakeSecret = 'trustTrustHandshakeSecret-1896647033';
+ $trust->setTrustHandshakeSecret($trustTrustHandshakeSecret);
+ $request = (new AttachTrustRequest())
+ ->setName($formattedName)
+ ->setTrust($trust);
+ $response = $gapicClient->attachTrust($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/attachTrustTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createMicrosoftAdDomainTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createMicrosoftAdDomainTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $reservedIpRange = 'reservedIpRange-1082940580';
+ $admin = 'admin92668751';
+ $fqdn = 'fqdn3150485';
+ $statusMessage = 'statusMessage-239442758';
+ $expectedResponse = new Domain();
+ $expectedResponse->setName($name);
+ $expectedResponse->setReservedIpRange($reservedIpRange);
+ $expectedResponse->setAdmin($admin);
+ $expectedResponse->setFqdn($fqdn);
+ $expectedResponse->setStatusMessage($statusMessage);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createMicrosoftAdDomainTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $domainName = 'domainName104118566';
+ $domain = new Domain();
+ $domainName = 'domainName-1244085905';
+ $domain->setName($domainName);
+ $domainReservedIpRange = 'domainReservedIpRange1357926058';
+ $domain->setReservedIpRange($domainReservedIpRange);
+ $domainLocations = [];
+ $domain->setLocations($domainLocations);
+ $request = (new CreateMicrosoftAdDomainRequest())
+ ->setParent($formattedParent)
+ ->setDomainName($domainName)
+ ->setDomain($domain);
+ $response = $gapicClient->createMicrosoftAdDomain($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedidentities.v1.ManagedIdentitiesService/CreateMicrosoftAdDomain', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getDomainName();
+ $this->assertProtobufEquals($domainName, $actualValue);
+ $actualValue = $actualApiRequestObject->getDomain();
+ $this->assertProtobufEquals($domain, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createMicrosoftAdDomainTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createMicrosoftAdDomainExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createMicrosoftAdDomainTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $domainName = 'domainName104118566';
+ $domain = new Domain();
+ $domainName = 'domainName-1244085905';
+ $domain->setName($domainName);
+ $domainReservedIpRange = 'domainReservedIpRange1357926058';
+ $domain->setReservedIpRange($domainReservedIpRange);
+ $domainLocations = [];
+ $domain->setLocations($domainLocations);
+ $request = (new CreateMicrosoftAdDomainRequest())
+ ->setParent($formattedParent)
+ ->setDomainName($domainName)
+ ->setDomain($domain);
+ $response = $gapicClient->createMicrosoftAdDomain($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createMicrosoftAdDomainTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteDomainTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteDomainTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteDomainTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $request = (new DeleteDomainRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteDomain($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedidentities.v1.ManagedIdentitiesService/DeleteDomain', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteDomainTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteDomainExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteDomainTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $request = (new DeleteDomainRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteDomain($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteDomainTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function detachTrustTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/detachTrustTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name2 = 'name2-1052831874';
+ $reservedIpRange = 'reservedIpRange-1082940580';
+ $admin = 'admin92668751';
+ $fqdn = 'fqdn3150485';
+ $statusMessage = 'statusMessage-239442758';
+ $expectedResponse = new Domain();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setReservedIpRange($reservedIpRange);
+ $expectedResponse->setAdmin($admin);
+ $expectedResponse->setFqdn($fqdn);
+ $expectedResponse->setStatusMessage($statusMessage);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/detachTrustTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $trust = new Trust();
+ $trustTargetDomainName = 'trustTargetDomainName-39985064';
+ $trust->setTargetDomainName($trustTargetDomainName);
+ $trustTrustType = TrustType::TRUST_TYPE_UNSPECIFIED;
+ $trust->setTrustType($trustTrustType);
+ $trustTrustDirection = TrustDirection::TRUST_DIRECTION_UNSPECIFIED;
+ $trust->setTrustDirection($trustTrustDirection);
+ $trustTargetDnsIpAddresses = [];
+ $trust->setTargetDnsIpAddresses($trustTargetDnsIpAddresses);
+ $trustTrustHandshakeSecret = 'trustTrustHandshakeSecret-1896647033';
+ $trust->setTrustHandshakeSecret($trustTrustHandshakeSecret);
+ $request = (new DetachTrustRequest())
+ ->setName($formattedName)
+ ->setTrust($trust);
+ $response = $gapicClient->detachTrust($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedidentities.v1.ManagedIdentitiesService/DetachTrust', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualApiRequestObject->getTrust();
+ $this->assertProtobufEquals($trust, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/detachTrustTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function detachTrustExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/detachTrustTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $trust = new Trust();
+ $trustTargetDomainName = 'trustTargetDomainName-39985064';
+ $trust->setTargetDomainName($trustTargetDomainName);
+ $trustTrustType = TrustType::TRUST_TYPE_UNSPECIFIED;
+ $trust->setTrustType($trustTrustType);
+ $trustTrustDirection = TrustDirection::TRUST_DIRECTION_UNSPECIFIED;
+ $trust->setTrustDirection($trustTrustDirection);
+ $trustTargetDnsIpAddresses = [];
+ $trust->setTargetDnsIpAddresses($trustTargetDnsIpAddresses);
+ $trustTrustHandshakeSecret = 'trustTrustHandshakeSecret-1896647033';
+ $trust->setTrustHandshakeSecret($trustTrustHandshakeSecret);
+ $request = (new DetachTrustRequest())
+ ->setName($formattedName)
+ ->setTrust($trust);
+ $response = $gapicClient->detachTrust($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/detachTrustTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function getDomainTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $reservedIpRange = 'reservedIpRange-1082940580';
+ $admin = 'admin92668751';
+ $fqdn = 'fqdn3150485';
+ $statusMessage = 'statusMessage-239442758';
+ $expectedResponse = new Domain();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setReservedIpRange($reservedIpRange);
+ $expectedResponse->setAdmin($admin);
+ $expectedResponse->setFqdn($fqdn);
+ $expectedResponse->setStatusMessage($statusMessage);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $request = (new GetDomainRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getDomain($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedidentities.v1.ManagedIdentitiesService/GetDomain', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getDomainExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $request = (new GetDomainRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getDomain($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listDomainsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $domainsElement = new Domain();
+ $domains = [
+ $domainsElement,
+ ];
+ $expectedResponse = new ListDomainsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setDomains($domains);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListDomainsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listDomains($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getDomains()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedidentities.v1.ManagedIdentitiesService/ListDomains', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listDomainsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListDomainsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listDomains($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function reconfigureTrustTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/reconfigureTrustTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name2 = 'name2-1052831874';
+ $reservedIpRange = 'reservedIpRange-1082940580';
+ $admin = 'admin92668751';
+ $fqdn = 'fqdn3150485';
+ $statusMessage = 'statusMessage-239442758';
+ $expectedResponse = new Domain();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setReservedIpRange($reservedIpRange);
+ $expectedResponse->setAdmin($admin);
+ $expectedResponse->setFqdn($fqdn);
+ $expectedResponse->setStatusMessage($statusMessage);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/reconfigureTrustTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $targetDomainName = 'targetDomainName1303689080';
+ $targetDnsIpAddresses = [];
+ $request = (new ReconfigureTrustRequest())
+ ->setName($formattedName)
+ ->setTargetDomainName($targetDomainName)
+ ->setTargetDnsIpAddresses($targetDnsIpAddresses);
+ $response = $gapicClient->reconfigureTrust($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedidentities.v1.ManagedIdentitiesService/ReconfigureTrust', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualApiRequestObject->getTargetDomainName();
+ $this->assertProtobufEquals($targetDomainName, $actualValue);
+ $actualValue = $actualApiRequestObject->getTargetDnsIpAddresses();
+ $this->assertProtobufEquals($targetDnsIpAddresses, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/reconfigureTrustTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function reconfigureTrustExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/reconfigureTrustTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $targetDomainName = 'targetDomainName1303689080';
+ $targetDnsIpAddresses = [];
+ $request = (new ReconfigureTrustRequest())
+ ->setName($formattedName)
+ ->setTargetDomainName($targetDomainName)
+ ->setTargetDnsIpAddresses($targetDnsIpAddresses);
+ $response = $gapicClient->reconfigureTrust($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/reconfigureTrustTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function resetAdminPasswordTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $password = 'password1216985755';
+ $expectedResponse = new ResetAdminPasswordResponse();
+ $expectedResponse->setPassword($password);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $request = (new ResetAdminPasswordRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->resetAdminPassword($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedidentities.v1.ManagedIdentitiesService/ResetAdminPassword', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function resetAdminPasswordExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $request = (new ResetAdminPasswordRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->resetAdminPassword($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateDomainTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateDomainTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $reservedIpRange = 'reservedIpRange-1082940580';
+ $admin = 'admin92668751';
+ $fqdn = 'fqdn3150485';
+ $statusMessage = 'statusMessage-239442758';
+ $expectedResponse = new Domain();
+ $expectedResponse->setName($name);
+ $expectedResponse->setReservedIpRange($reservedIpRange);
+ $expectedResponse->setAdmin($admin);
+ $expectedResponse->setFqdn($fqdn);
+ $expectedResponse->setStatusMessage($statusMessage);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateDomainTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $domain = new Domain();
+ $domainName = 'domainName-1244085905';
+ $domain->setName($domainName);
+ $domainReservedIpRange = 'domainReservedIpRange1357926058';
+ $domain->setReservedIpRange($domainReservedIpRange);
+ $domainLocations = [];
+ $domain->setLocations($domainLocations);
+ $request = (new UpdateDomainRequest())
+ ->setUpdateMask($updateMask)
+ ->setDomain($domain);
+ $response = $gapicClient->updateDomain($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedidentities.v1.ManagedIdentitiesService/UpdateDomain', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getDomain();
+ $this->assertProtobufEquals($domain, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateDomainTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateDomainExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateDomainTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $updateMask = new FieldMask();
+ $domain = new Domain();
+ $domainName = 'domainName-1244085905';
+ $domain->setName($domainName);
+ $domainReservedIpRange = 'domainReservedIpRange1357926058';
+ $domain->setReservedIpRange($domainReservedIpRange);
+ $domainLocations = [];
+ $domain->setLocations($domainLocations);
+ $request = (new UpdateDomainRequest())
+ ->setUpdateMask($updateMask)
+ ->setDomain($domain);
+ $response = $gapicClient->updateDomain($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateDomainTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function validateTrustTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/validateTrustTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name2 = 'name2-1052831874';
+ $reservedIpRange = 'reservedIpRange-1082940580';
+ $admin = 'admin92668751';
+ $fqdn = 'fqdn3150485';
+ $statusMessage = 'statusMessage-239442758';
+ $expectedResponse = new Domain();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setReservedIpRange($reservedIpRange);
+ $expectedResponse->setAdmin($admin);
+ $expectedResponse->setFqdn($fqdn);
+ $expectedResponse->setStatusMessage($statusMessage);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/validateTrustTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $trust = new Trust();
+ $trustTargetDomainName = 'trustTargetDomainName-39985064';
+ $trust->setTargetDomainName($trustTargetDomainName);
+ $trustTrustType = TrustType::TRUST_TYPE_UNSPECIFIED;
+ $trust->setTrustType($trustTrustType);
+ $trustTrustDirection = TrustDirection::TRUST_DIRECTION_UNSPECIFIED;
+ $trust->setTrustDirection($trustTrustDirection);
+ $trustTargetDnsIpAddresses = [];
+ $trust->setTargetDnsIpAddresses($trustTargetDnsIpAddresses);
+ $trustTrustHandshakeSecret = 'trustTrustHandshakeSecret-1896647033';
+ $trust->setTrustHandshakeSecret($trustTrustHandshakeSecret);
+ $request = (new ValidateTrustRequest())
+ ->setName($formattedName)
+ ->setTrust($trust);
+ $response = $gapicClient->validateTrust($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedidentities.v1.ManagedIdentitiesService/ValidateTrust', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualApiRequestObject->getTrust();
+ $this->assertProtobufEquals($trust, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/validateTrustTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function validateTrustExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/validateTrustTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $trust = new Trust();
+ $trustTargetDomainName = 'trustTargetDomainName-39985064';
+ $trust->setTargetDomainName($trustTargetDomainName);
+ $trustTrustType = TrustType::TRUST_TYPE_UNSPECIFIED;
+ $trust->setTrustType($trustTrustType);
+ $trustTrustDirection = TrustDirection::TRUST_DIRECTION_UNSPECIFIED;
+ $trust->setTrustDirection($trustTrustDirection);
+ $trustTargetDnsIpAddresses = [];
+ $trust->setTargetDnsIpAddresses($trustTargetDnsIpAddresses);
+ $trustTrustHandshakeSecret = 'trustTrustHandshakeSecret-1896647033';
+ $trust->setTrustHandshakeSecret($trustTrustHandshakeSecret);
+ $request = (new ValidateTrustRequest())
+ ->setName($formattedName)
+ ->setTrust($trust);
+ $response = $gapicClient->validateTrust($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/validateTrustTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function attachTrustAsyncTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/attachTrustTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name2 = 'name2-1052831874';
+ $reservedIpRange = 'reservedIpRange-1082940580';
+ $admin = 'admin92668751';
+ $fqdn = 'fqdn3150485';
+ $statusMessage = 'statusMessage-239442758';
+ $expectedResponse = new Domain();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setReservedIpRange($reservedIpRange);
+ $expectedResponse->setAdmin($admin);
+ $expectedResponse->setFqdn($fqdn);
+ $expectedResponse->setStatusMessage($statusMessage);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/attachTrustTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->domainName('[PROJECT]', '[LOCATION]', '[DOMAIN]');
+ $trust = new Trust();
+ $trustTargetDomainName = 'trustTargetDomainName-39985064';
+ $trust->setTargetDomainName($trustTargetDomainName);
+ $trustTrustType = TrustType::TRUST_TYPE_UNSPECIFIED;
+ $trust->setTrustType($trustTrustType);
+ $trustTrustDirection = TrustDirection::TRUST_DIRECTION_UNSPECIFIED;
+ $trust->setTrustDirection($trustTrustDirection);
+ $trustTargetDnsIpAddresses = [];
+ $trust->setTargetDnsIpAddresses($trustTargetDnsIpAddresses);
+ $trustTrustHandshakeSecret = 'trustTrustHandshakeSecret-1896647033';
+ $trust->setTrustHandshakeSecret($trustTrustHandshakeSecret);
+ $request = (new AttachTrustRequest())
+ ->setName($formattedName)
+ ->setTrust($trust);
+ $response = $gapicClient->attachTrustAsync($request)->wait();
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedidentities.v1.ManagedIdentitiesService/AttachTrust', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualApiRequestObject->getTrust();
+ $this->assertProtobufEquals($trust, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/attachTrustTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/GPBMetadata/Google/Cloud/Managedkafka/V1/ManagedKafka.php b/owl-bot-staging/ManagedKafka/v1/proto/src/GPBMetadata/Google/Cloud/Managedkafka/V1/ManagedKafka.php
new file mode 100644
index 000000000000..10674c4cc346
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/GPBMetadata/Google/Cloud/Managedkafka/V1/ManagedKafka.php
@@ -0,0 +1,125 @@
+internalAddGeneratedFile(
+ '
+ñ+
+0google/cloud/managedkafka/v1/managed_kafka.protogoogle.cloud.managedkafka.v1google/api/client.protogoogle/api/field_behavior.protogoogle/api/field_info.protogoogle/api/resource.proto,google/cloud/managedkafka/v1/resources.proto#google/longrunning/operations.protogoogle/protobuf/empty.proto google/protobuf/field_mask.proto"¯
+ListClustersRequest;
+parent ( B+àAúA%#managedkafka.googleapis.com/Cluster
+ page_size (BàA
+
+page_token ( BàA
+filter ( BàA
+order_by ( BàA"}
+ListClustersResponse7
+clusters (2%.google.cloud.managedkafka.v1.Cluster
+next_page_token (
+unreachable ( "N
+GetClusterRequest9
+name ( B+àAúA%
+#managedkafka.googleapis.com/Cluster"Ê
+CreateClusterRequest;
+parent ( B+àAúA%#managedkafka.googleapis.com/Cluster
+
+cluster_id ( BàA;
+cluster (2%.google.cloud.managedkafka.v1.ClusterBàA
+
+request_id ( BàAâŒÏ×"ª
+UpdateClusterRequest4
+update_mask (2.google.protobuf.FieldMaskBàA;
+cluster (2%.google.cloud.managedkafka.v1.ClusterBàA
+
+request_id ( BàAâŒÏ×"r
+DeleteClusterRequest9
+name ( B+àAúA%
+#managedkafka.googleapis.com/Cluster
+
+request_id ( BàAâŒÏ×"
+ListTopicsRequest9
+parent ( B)àAúA#!managedkafka.googleapis.com/Topic
+ page_size (BàA
+
+page_token ( BàA"b
+ListTopicsResponse3
+topics (2#.google.cloud.managedkafka.v1.Topic
+next_page_token ( "J
+GetTopicRequest7
+name ( B)àAúA#
+!managedkafka.googleapis.com/Topic"Ÿ
+CreateTopicRequest9
+parent ( B)àAúA#!managedkafka.googleapis.com/Topic
+topic_id ( BàA7
+topic (2#.google.cloud.managedkafka.v1.TopicBàA"ƒ
+UpdateTopicRequest4
+update_mask (2.google.protobuf.FieldMaskBàA7
+topic (2#.google.cloud.managedkafka.v1.TopicBàA"M
+DeleteTopicRequest7
+name ( B)àAúA#
+!managedkafka.googleapis.com/Topic"
+ListConsumerGroupsRequestA
+parent ( B1àAúA+)managedkafka.googleapis.com/ConsumerGroup
+ page_size (BàA
+
+page_token ( BàA"{
+ListConsumerGroupsResponseD
+consumer_groups (2+.google.cloud.managedkafka.v1.ConsumerGroup
+next_page_token ( "Z
+GetConsumerGroupRequest?
+name ( B1àAúA+
+)managedkafka.googleapis.com/ConsumerGroup"œ
+UpdateConsumerGroupRequest4
+update_mask (2.google.protobuf.FieldMaskBàAH
+consumer_group (2+.google.cloud.managedkafka.v1.ConsumerGroupBàA"]
+DeleteConsumerGroupRequest?
+name ( B1àAúA+
+)managedkafka.googleapis.com/ConsumerGroup2²
+ManagedKafka´
+ListClusters1.google.cloud.managedkafka.v1.ListClustersRequest2.google.cloud.managedkafka.v1.ListClustersResponse"=ÚAparent‚Óä“.,/v1/{parent=projects/*/locations/*}/clusters¡
+
+GetCluster/.google.cloud.managedkafka.v1.GetClusterRequest%.google.cloud.managedkafka.v1.Cluster";ÚAname‚Óä“.,/v1/{name=projects/*/locations/*/clusters/*}Ü
+
CreateCluster2.google.cloud.managedkafka.v1.CreateClusterRequest.google.longrunning.Operation"xÊA
+ClusterOperationMetadataÚAparent,cluster,cluster_id‚Óä“7",/v1/{parent=projects/*/locations/*}/clusters:clusterÞ
+
UpdateCluster2.google.cloud.managedkafka.v1.UpdateClusterRequest.google.longrunning.Operation"zÊA
+ClusterOperationMetadataÚAcluster,update_mask‚Óä“?24/v1/{cluster.name=projects/*/locations/*/clusters/*}:clusterÌ
+
DeleteCluster2.google.cloud.managedkafka.v1.DeleteClusterRequest.google.longrunning.Operation"hÊA*
+google.protobuf.EmptyOperationMetadataÚAname‚Óä“.*,/v1/{name=projects/*/locations/*/clusters/*}·
+
+ListTopics/.google.cloud.managedkafka.v1.ListTopicsRequest0.google.cloud.managedkafka.v1.ListTopicsResponse"FÚAparent‚Óä“75/v1/{parent=projects/*/locations/*/clusters/*}/topics¤
+GetTopic-.google.cloud.managedkafka.v1.GetTopicRequest#.google.cloud.managedkafka.v1.Topic"DÚAname‚Óä“75/v1/{name=projects/*/locations/*/clusters/*/topics/*}Â
+CreateTopic0.google.cloud.managedkafka.v1.CreateTopicRequest#.google.cloud.managedkafka.v1.Topic"\\ÚAparent,topic,topic_id‚Óä“>"5/v1/{parent=projects/*/locations/*/clusters/*}/topics:topicÄ
+UpdateTopic0.google.cloud.managedkafka.v1.UpdateTopicRequest#.google.cloud.managedkafka.v1.Topic"^ÚAtopic,update_mask‚Óä“D2;/v1/{topic.name=projects/*/locations/*/clusters/*/topics/*}:topic
+DeleteTopic0.google.cloud.managedkafka.v1.DeleteTopicRequest.google.protobuf.Empty"DÚAname‚Óä“7*5/v1/{name=projects/*/locations/*/clusters/*/topics/*}×
+ListConsumerGroups7.google.cloud.managedkafka.v1.ListConsumerGroupsRequest8.google.cloud.managedkafka.v1.ListConsumerGroupsResponse"NÚAparent‚Óä“?=/v1/{parent=projects/*/locations/*/clusters/*}/consumerGroupsÄ
+GetConsumerGroup5.google.cloud.managedkafka.v1.GetConsumerGroupRequest+.google.cloud.managedkafka.v1.ConsumerGroup"LÚAname‚Óä“?=/v1/{name=projects/*/locations/*/clusters/*/consumerGroups/*}€
+UpdateConsumerGroup8.google.cloud.managedkafka.v1.UpdateConsumerGroupRequest+.google.cloud.managedkafka.v1.ConsumerGroup"ÚAconsumer_group,update_mask‚Óä“^2L/v1/{consumer_group.name=projects/*/locations/*/clusters/*/consumerGroups/*}:consumer_groupµ
+DeleteConsumerGroup8.google.cloud.managedkafka.v1.DeleteConsumerGroupRequest.google.protobuf.Empty"LÚAname‚Óä“?*=/v1/{name=projects/*/locations/*/clusters/*/consumerGroups/*}OÊAmanagedkafka.googleapis.comÒA.https://www.googleapis.com/auth/cloud-platformBÝ
+ com.google.cloud.managedkafka.v1BManagedKafkaProtoPZDcloud.google.com/go/managedkafka/apiv1/managedkafkapb;managedkafkapbªGoogle.Cloud.ManagedKafka.V1ÊGoogle\\Cloud\\ManagedKafka\\V1êGoogle::Cloud::ManagedKafka::V1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/GPBMetadata/Google/Cloud/Managedkafka/V1/Resources.php b/owl-bot-staging/ManagedKafka/v1/proto/src/GPBMetadata/Google/Cloud/Managedkafka/V1/Resources.php
new file mode 100644
index 000000000000..05cd1c359ad8
Binary files /dev/null and b/owl-bot-staging/ManagedKafka/v1/proto/src/GPBMetadata/Google/Cloud/Managedkafka/V1/Resources.php differ
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/AccessConfig.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/AccessConfig.php
new file mode 100644
index 000000000000..7b0b55d42851
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/AccessConfig.php
@@ -0,0 +1,75 @@
+google.cloud.managedkafka.v1.AccessConfig
+ */
+class AccessConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Virtual Private Cloud (VPC) networks that must be granted direct
+ * access to the Kafka cluster. Minimum of 1 network is required. Maximum 10
+ * networks can be specified.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedkafka.v1.NetworkConfig network_configs = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $network_configs;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ManagedKafka\V1\NetworkConfig>|\Google\Protobuf\Internal\RepeatedField $network_configs
+ * Required. Virtual Private Cloud (VPC) networks that must be granted direct
+ * access to the Kafka cluster. Minimum of 1 network is required. Maximum 10
+ * networks can be specified.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\Resources::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Virtual Private Cloud (VPC) networks that must be granted direct
+ * access to the Kafka cluster. Minimum of 1 network is required. Maximum 10
+ * networks can be specified.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedkafka.v1.NetworkConfig network_configs = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getNetworkConfigs()
+ {
+ return $this->network_configs;
+ }
+
+ /**
+ * Required. Virtual Private Cloud (VPC) networks that must be granted direct
+ * access to the Kafka cluster. Minimum of 1 network is required. Maximum 10
+ * networks can be specified.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedkafka.v1.NetworkConfig network_configs = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param array<\Google\Cloud\ManagedKafka\V1\NetworkConfig>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setNetworkConfigs($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ManagedKafka\V1\NetworkConfig::class);
+ $this->network_configs = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/CapacityConfig.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/CapacityConfig.php
new file mode 100644
index 000000000000..491c262bce33
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/CapacityConfig.php
@@ -0,0 +1,109 @@
+google.cloud.managedkafka.v1.CapacityConfig
+ */
+class CapacityConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The number of vCPUs to provision for the cluster. Minimum: 3.
+ *
+ * Generated from protobuf field int64 vcpu_count = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $vcpu_count = 0;
+ /**
+ * Required. The memory to provision for the cluster in bytes.
+ * The CPU:memory ratio (vCPU:GiB) must be between 1:1 and 1:8.
+ * Minimum: 3221225472 (3 GiB).
+ *
+ * Generated from protobuf field int64 memory_bytes = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $memory_bytes = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $vcpu_count
+ * Required. The number of vCPUs to provision for the cluster. Minimum: 3.
+ * @type int|string $memory_bytes
+ * Required. The memory to provision for the cluster in bytes.
+ * The CPU:memory ratio (vCPU:GiB) must be between 1:1 and 1:8.
+ * Minimum: 3221225472 (3 GiB).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\Resources::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The number of vCPUs to provision for the cluster. Minimum: 3.
+ *
+ * Generated from protobuf field int64 vcpu_count = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return int|string
+ */
+ public function getVcpuCount()
+ {
+ return $this->vcpu_count;
+ }
+
+ /**
+ * Required. The number of vCPUs to provision for the cluster. Minimum: 3.
+ *
+ * Generated from protobuf field int64 vcpu_count = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setVcpuCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->vcpu_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The memory to provision for the cluster in bytes.
+ * The CPU:memory ratio (vCPU:GiB) must be between 1:1 and 1:8.
+ * Minimum: 3221225472 (3 GiB).
+ *
+ * Generated from protobuf field int64 memory_bytes = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return int|string
+ */
+ public function getMemoryBytes()
+ {
+ return $this->memory_bytes;
+ }
+
+ /**
+ * Required. The memory to provision for the cluster in bytes.
+ * The CPU:memory ratio (vCPU:GiB) must be between 1:1 and 1:8.
+ * Minimum: 3221225472 (3 GiB).
+ *
+ * Generated from protobuf field int64 memory_bytes = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setMemoryBytes($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->memory_bytes = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/Cluster.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/Cluster.php
new file mode 100644
index 000000000000..0f78467726d0
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/Cluster.php
@@ -0,0 +1,448 @@
+google.cloud.managedkafka.v1.Cluster
+ */
+class Cluster extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Identifier. The name of the cluster. Structured like:
+ * projects/{project_number}/locations/{location}/clusters/{cluster_id}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ */
+ protected $name = '';
+ /**
+ * Output only. The time when the cluster was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The time when the cluster was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * Optional. Labels as key value pairs.
+ *
+ * Generated from protobuf field map labels = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $labels;
+ /**
+ * Required. Capacity configuration for the Kafka cluster.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.CapacityConfig capacity_config = 5 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $capacity_config = null;
+ /**
+ * Optional. Rebalance configuration for the Kafka cluster.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.RebalanceConfig rebalance_config = 8 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $rebalance_config = null;
+ /**
+ * Output only. The current state of the cluster.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.Cluster.State state = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. Reserved for future use.
+ *
+ * Generated from protobuf field optional bool satisfies_pzi = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $satisfies_pzi = null;
+ /**
+ * Output only. Reserved for future use.
+ *
+ * Generated from protobuf field optional bool satisfies_pzs = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $satisfies_pzs = null;
+ protected $platform_config;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ManagedKafka\V1\GcpConfig $gcp_config
+ * Required. Configuration properties for a Kafka cluster deployed to Google
+ * Cloud Platform.
+ * @type string $name
+ * Identifier. The name of the cluster. Structured like:
+ * projects/{project_number}/locations/{location}/clusters/{cluster_id}
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the cluster was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time when the cluster was last updated.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Optional. Labels as key value pairs.
+ * @type \Google\Cloud\ManagedKafka\V1\CapacityConfig $capacity_config
+ * Required. Capacity configuration for the Kafka cluster.
+ * @type \Google\Cloud\ManagedKafka\V1\RebalanceConfig $rebalance_config
+ * Optional. Rebalance configuration for the Kafka cluster.
+ * @type int $state
+ * Output only. The current state of the cluster.
+ * @type bool $satisfies_pzi
+ * Output only. Reserved for future use.
+ * @type bool $satisfies_pzs
+ * Output only. Reserved for future use.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\Resources::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Configuration properties for a Kafka cluster deployed to Google
+ * Cloud Platform.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.GcpConfig gcp_config = 9 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ManagedKafka\V1\GcpConfig|null
+ */
+ public function getGcpConfig()
+ {
+ return $this->readOneof(9);
+ }
+
+ public function hasGcpConfig()
+ {
+ return $this->hasOneof(9);
+ }
+
+ /**
+ * Required. Configuration properties for a Kafka cluster deployed to Google
+ * Cloud Platform.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.GcpConfig gcp_config = 9 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ManagedKafka\V1\GcpConfig $var
+ * @return $this
+ */
+ public function setGcpConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ManagedKafka\V1\GcpConfig::class);
+ $this->writeOneof(9, $var);
+
+ return $this;
+ }
+
+ /**
+ * Identifier. The name of the cluster. Structured like:
+ * projects/{project_number}/locations/{location}/clusters/{cluster_id}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Identifier. The name of the cluster. Structured like:
+ * projects/{project_number}/locations/{location}/clusters/{cluster_id}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the cluster was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The time when the cluster was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the cluster was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The time when the cluster was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Labels as key value pairs.
+ *
+ * Generated from protobuf field map labels = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Optional. Labels as key value pairs.
+ *
+ * Generated from protobuf field map labels = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->labels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Required. Capacity configuration for the Kafka cluster.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.CapacityConfig capacity_config = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ManagedKafka\V1\CapacityConfig|null
+ */
+ public function getCapacityConfig()
+ {
+ return $this->capacity_config;
+ }
+
+ public function hasCapacityConfig()
+ {
+ return isset($this->capacity_config);
+ }
+
+ public function clearCapacityConfig()
+ {
+ unset($this->capacity_config);
+ }
+
+ /**
+ * Required. Capacity configuration for the Kafka cluster.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.CapacityConfig capacity_config = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ManagedKafka\V1\CapacityConfig $var
+ * @return $this
+ */
+ public function setCapacityConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ManagedKafka\V1\CapacityConfig::class);
+ $this->capacity_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Rebalance configuration for the Kafka cluster.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.RebalanceConfig rebalance_config = 8 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\ManagedKafka\V1\RebalanceConfig|null
+ */
+ public function getRebalanceConfig()
+ {
+ return $this->rebalance_config;
+ }
+
+ public function hasRebalanceConfig()
+ {
+ return isset($this->rebalance_config);
+ }
+
+ public function clearRebalanceConfig()
+ {
+ unset($this->rebalance_config);
+ }
+
+ /**
+ * Optional. Rebalance configuration for the Kafka cluster.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.RebalanceConfig rebalance_config = 8 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\ManagedKafka\V1\RebalanceConfig $var
+ * @return $this
+ */
+ public function setRebalanceConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ManagedKafka\V1\RebalanceConfig::class);
+ $this->rebalance_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The current state of the cluster.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.Cluster.State state = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the cluster.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.Cluster.State state = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ManagedKafka\V1\Cluster\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Reserved for future use.
+ *
+ * Generated from protobuf field optional bool satisfies_pzi = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getSatisfiesPzi()
+ {
+ return isset($this->satisfies_pzi) ? $this->satisfies_pzi : false;
+ }
+
+ public function hasSatisfiesPzi()
+ {
+ return isset($this->satisfies_pzi);
+ }
+
+ public function clearSatisfiesPzi()
+ {
+ unset($this->satisfies_pzi);
+ }
+
+ /**
+ * Output only. Reserved for future use.
+ *
+ * Generated from protobuf field optional bool satisfies_pzi = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setSatisfiesPzi($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->satisfies_pzi = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Reserved for future use.
+ *
+ * Generated from protobuf field optional bool satisfies_pzs = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getSatisfiesPzs()
+ {
+ return isset($this->satisfies_pzs) ? $this->satisfies_pzs : false;
+ }
+
+ public function hasSatisfiesPzs()
+ {
+ return isset($this->satisfies_pzs);
+ }
+
+ public function clearSatisfiesPzs()
+ {
+ unset($this->satisfies_pzs);
+ }
+
+ /**
+ * Output only. Reserved for future use.
+ *
+ * Generated from protobuf field optional bool satisfies_pzs = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setSatisfiesPzs($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->satisfies_pzs = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getPlatformConfig()
+ {
+ return $this->whichOneof("platform_config");
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/Cluster/State.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/Cluster/State.php
new file mode 100644
index 000000000000..e3a34a3a6a34
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/Cluster/State.php
@@ -0,0 +1,71 @@
+google.cloud.managedkafka.v1.Cluster.State
+ */
+class State
+{
+ /**
+ * A state was not specified.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The cluster is being created.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * The cluster is active.
+ *
+ * Generated from protobuf enum ACTIVE = 2;
+ */
+ const ACTIVE = 2;
+ /**
+ * The cluster is being deleted.
+ *
+ * Generated from protobuf enum DELETING = 3;
+ */
+ const DELETING = 3;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::ACTIVE => 'ACTIVE',
+ self::DELETING => 'DELETING',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(State::class, \Google\Cloud\ManagedKafka\V1\Cluster_State::class);
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ConsumerGroup.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ConsumerGroup.php
new file mode 100644
index 000000000000..1dd45cb33745
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ConsumerGroup.php
@@ -0,0 +1,117 @@
+google.cloud.managedkafka.v1.ConsumerGroup
+ */
+class ConsumerGroup extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Identifier. The name of the consumer group. The `consumer_group` segment is
+ * used when connecting directly to the cluster. Structured like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumer_group}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ */
+ protected $name = '';
+ /**
+ * Optional. Metadata for this consumer group for all topics it has metadata
+ * for. The key of the map is a topic name, structured like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}
+ *
+ * Generated from protobuf field map topics = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $topics;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Identifier. The name of the consumer group. The `consumer_group` segment is
+ * used when connecting directly to the cluster. Structured like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumer_group}
+ * @type array|\Google\Protobuf\Internal\MapField $topics
+ * Optional. Metadata for this consumer group for all topics it has metadata
+ * for. The key of the map is a topic name, structured like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\Resources::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Identifier. The name of the consumer group. The `consumer_group` segment is
+ * used when connecting directly to the cluster. Structured like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumer_group}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Identifier. The name of the consumer group. The `consumer_group` segment is
+ * used when connecting directly to the cluster. Structured like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumer_group}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Metadata for this consumer group for all topics it has metadata
+ * for. The key of the map is a topic name, structured like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}
+ *
+ * Generated from protobuf field map topics = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getTopics()
+ {
+ return $this->topics;
+ }
+
+ /**
+ * Optional. Metadata for this consumer group for all topics it has metadata
+ * for. The key of the map is a topic name, structured like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}
+ *
+ * Generated from protobuf field map topics = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setTopics($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ManagedKafka\V1\ConsumerTopicMetadata::class);
+ $this->topics = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ConsumerPartitionMetadata.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ConsumerPartitionMetadata.php
new file mode 100644
index 000000000000..c51b38cc407a
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ConsumerPartitionMetadata.php
@@ -0,0 +1,109 @@
+google.cloud.managedkafka.v1.ConsumerPartitionMetadata
+ */
+class ConsumerPartitionMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The current offset for this partition, or 0 if no offset has been
+ * committed.
+ *
+ * Generated from protobuf field int64 offset = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $offset = 0;
+ /**
+ * Optional. The associated metadata for this partition, or empty if it does
+ * not exist.
+ *
+ * Generated from protobuf field string metadata = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $metadata = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $offset
+ * Required. The current offset for this partition, or 0 if no offset has been
+ * committed.
+ * @type string $metadata
+ * Optional. The associated metadata for this partition, or empty if it does
+ * not exist.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\Resources::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The current offset for this partition, or 0 if no offset has been
+ * committed.
+ *
+ * Generated from protobuf field int64 offset = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return int|string
+ */
+ public function getOffset()
+ {
+ return $this->offset;
+ }
+
+ /**
+ * Required. The current offset for this partition, or 0 if no offset has been
+ * committed.
+ *
+ * Generated from protobuf field int64 offset = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setOffset($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->offset = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The associated metadata for this partition, or empty if it does
+ * not exist.
+ *
+ * Generated from protobuf field string metadata = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getMetadata()
+ {
+ return $this->metadata;
+ }
+
+ /**
+ * Optional. The associated metadata for this partition, or empty if it does
+ * not exist.
+ *
+ * Generated from protobuf field string metadata = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setMetadata($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->metadata = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ConsumerTopicMetadata.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ConsumerTopicMetadata.php
new file mode 100644
index 000000000000..1bae3f307e4f
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ConsumerTopicMetadata.php
@@ -0,0 +1,71 @@
+google.cloud.managedkafka.v1.ConsumerTopicMetadata
+ */
+class ConsumerTopicMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Metadata for this consumer group and topic for all partition
+ * indexes it has metadata for.
+ *
+ * Generated from protobuf field map partitions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $partitions;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\MapField $partitions
+ * Optional. Metadata for this consumer group and topic for all partition
+ * indexes it has metadata for.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\Resources::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Metadata for this consumer group and topic for all partition
+ * indexes it has metadata for.
+ *
+ * Generated from protobuf field map partitions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getPartitions()
+ {
+ return $this->partitions;
+ }
+
+ /**
+ * Optional. Metadata for this consumer group and topic for all partition
+ * indexes it has metadata for.
+ *
+ * Generated from protobuf field map partitions = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setPartitions($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::INT32, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ManagedKafka\V1\ConsumerPartitionMetadata::class);
+ $this->partitions = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/CreateClusterRequest.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/CreateClusterRequest.php
new file mode 100644
index 000000000000..8271e3324f0e
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/CreateClusterRequest.php
@@ -0,0 +1,272 @@
+google.cloud.managedkafka.v1.CreateClusterRequest
+ */
+class CreateClusterRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent region in which to create the cluster. Structured like
+ * `projects/{project}/locations/{location}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID to use for the cluster, which will become the final
+ * component of the cluster's name. The ID must be 1-63 characters long, and
+ * match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` to comply with
+ * RFC 1035.
+ * This value is structured like: `my-cluster-id`.
+ *
+ * Generated from protobuf field string cluster_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $cluster_id = '';
+ /**
+ * Required. Configuration of the cluster to create. Its `name` field is
+ * ignored.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.Cluster cluster = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $cluster = null;
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID to avoid duplication of requests. If a request times out or
+ * fails, retrying with the same ID allows the server to recognize the
+ * previous attempt. For at least 60 minutes, the server ignores duplicate
+ * requests bearing the same ID.
+ * For example, consider a situation where you make an initial request and the
+ * request times out. If you make the request again with the same request ID
+ * within 60 minutes of the last request, the server checks if an original
+ * operation with the same request ID was received. If so, the server ignores
+ * the second request.
+ * The request ID must be a valid UUID. A zero UUID is not supported
+ * (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_info) = {
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $parent Required. The parent region in which to create the cluster. Structured like
+ * `projects/{project}/locations/{location}`. Please see
+ * {@see ManagedKafkaClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\ManagedKafka\V1\Cluster $cluster Required. Configuration of the cluster to create. Its `name` field is
+ * ignored.
+ * @param string $clusterId Required. The ID to use for the cluster, which will become the final
+ * component of the cluster's name. The ID must be 1-63 characters long, and
+ * match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` to comply with
+ * RFC 1035.
+ *
+ * This value is structured like: `my-cluster-id`.
+ *
+ * @return \Google\Cloud\ManagedKafka\V1\CreateClusterRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\ManagedKafka\V1\Cluster $cluster, string $clusterId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setCluster($cluster)
+ ->setClusterId($clusterId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The parent region in which to create the cluster. Structured like
+ * `projects/{project}/locations/{location}`.
+ * @type string $cluster_id
+ * Required. The ID to use for the cluster, which will become the final
+ * component of the cluster's name. The ID must be 1-63 characters long, and
+ * match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` to comply with
+ * RFC 1035.
+ * This value is structured like: `my-cluster-id`.
+ * @type \Google\Cloud\ManagedKafka\V1\Cluster $cluster
+ * Required. Configuration of the cluster to create. Its `name` field is
+ * ignored.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID to avoid duplication of requests. If a request times out or
+ * fails, retrying with the same ID allows the server to recognize the
+ * previous attempt. For at least 60 minutes, the server ignores duplicate
+ * requests bearing the same ID.
+ * For example, consider a situation where you make an initial request and the
+ * request times out. If you make the request again with the same request ID
+ * within 60 minutes of the last request, the server checks if an original
+ * operation with the same request ID was received. If so, the server ignores
+ * the second request.
+ * The request ID must be a valid UUID. A zero UUID is not supported
+ * (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent region in which to create the cluster. Structured like
+ * `projects/{project}/locations/{location}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The parent region in which to create the cluster. Structured like
+ * `projects/{project}/locations/{location}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The ID to use for the cluster, which will become the final
+ * component of the cluster's name. The ID must be 1-63 characters long, and
+ * match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` to comply with
+ * RFC 1035.
+ * This value is structured like: `my-cluster-id`.
+ *
+ * Generated from protobuf field string cluster_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getClusterId()
+ {
+ return $this->cluster_id;
+ }
+
+ /**
+ * Required. The ID to use for the cluster, which will become the final
+ * component of the cluster's name. The ID must be 1-63 characters long, and
+ * match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` to comply with
+ * RFC 1035.
+ * This value is structured like: `my-cluster-id`.
+ *
+ * Generated from protobuf field string cluster_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setClusterId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cluster_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Configuration of the cluster to create. Its `name` field is
+ * ignored.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.Cluster cluster = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ManagedKafka\V1\Cluster|null
+ */
+ public function getCluster()
+ {
+ return $this->cluster;
+ }
+
+ public function hasCluster()
+ {
+ return isset($this->cluster);
+ }
+
+ public function clearCluster()
+ {
+ unset($this->cluster);
+ }
+
+ /**
+ * Required. Configuration of the cluster to create. Its `name` field is
+ * ignored.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.Cluster cluster = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ManagedKafka\V1\Cluster $var
+ * @return $this
+ */
+ public function setCluster($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ManagedKafka\V1\Cluster::class);
+ $this->cluster = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID to avoid duplication of requests. If a request times out or
+ * fails, retrying with the same ID allows the server to recognize the
+ * previous attempt. For at least 60 minutes, the server ignores duplicate
+ * requests bearing the same ID.
+ * For example, consider a situation where you make an initial request and the
+ * request times out. If you make the request again with the same request ID
+ * within 60 minutes of the last request, the server checks if an original
+ * operation with the same request ID was received. If so, the server ignores
+ * the second request.
+ * The request ID must be a valid UUID. A zero UUID is not supported
+ * (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_info) = {
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID to avoid duplication of requests. If a request times out or
+ * fails, retrying with the same ID allows the server to recognize the
+ * previous attempt. For at least 60 minutes, the server ignores duplicate
+ * requests bearing the same ID.
+ * For example, consider a situation where you make an initial request and the
+ * request times out. If you make the request again with the same request ID
+ * within 60 minutes of the last request, the server checks if an original
+ * operation with the same request ID was received. If so, the server ignores
+ * the second request.
+ * The request ID must be a valid UUID. A zero UUID is not supported
+ * (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_info) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/CreateTopicRequest.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/CreateTopicRequest.php
new file mode 100644
index 000000000000..49797ac7e3d0
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/CreateTopicRequest.php
@@ -0,0 +1,189 @@
+google.cloud.managedkafka.v1.CreateTopicRequest
+ */
+class CreateTopicRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent cluster in which to create the topic.
+ * Structured like
+ * `projects/{project}/locations/{location}/clusters/{cluster}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID to use for the topic, which will become the final
+ * component of the topic's name.
+ * This value is structured like: `my-topic-name`.
+ *
+ * Generated from protobuf field string topic_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $topic_id = '';
+ /**
+ * Required. Configuration of the topic to create. Its `name` field is
+ * ignored.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.Topic topic = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $topic = null;
+
+ /**
+ * @param string $parent Required. The parent cluster in which to create the topic.
+ * Structured like
+ * `projects/{project}/locations/{location}/clusters/{cluster}`. Please see
+ * {@see ManagedKafkaClient::clusterName()} for help formatting this field.
+ * @param \Google\Cloud\ManagedKafka\V1\Topic $topic Required. Configuration of the topic to create. Its `name` field is
+ * ignored.
+ * @param string $topicId Required. The ID to use for the topic, which will become the final
+ * component of the topic's name.
+ *
+ * This value is structured like: `my-topic-name`.
+ *
+ * @return \Google\Cloud\ManagedKafka\V1\CreateTopicRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\ManagedKafka\V1\Topic $topic, string $topicId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setTopic($topic)
+ ->setTopicId($topicId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The parent cluster in which to create the topic.
+ * Structured like
+ * `projects/{project}/locations/{location}/clusters/{cluster}`.
+ * @type string $topic_id
+ * Required. The ID to use for the topic, which will become the final
+ * component of the topic's name.
+ * This value is structured like: `my-topic-name`.
+ * @type \Google\Cloud\ManagedKafka\V1\Topic $topic
+ * Required. Configuration of the topic to create. Its `name` field is
+ * ignored.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent cluster in which to create the topic.
+ * Structured like
+ * `projects/{project}/locations/{location}/clusters/{cluster}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The parent cluster in which to create the topic.
+ * Structured like
+ * `projects/{project}/locations/{location}/clusters/{cluster}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The ID to use for the topic, which will become the final
+ * component of the topic's name.
+ * This value is structured like: `my-topic-name`.
+ *
+ * Generated from protobuf field string topic_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getTopicId()
+ {
+ return $this->topic_id;
+ }
+
+ /**
+ * Required. The ID to use for the topic, which will become the final
+ * component of the topic's name.
+ * This value is structured like: `my-topic-name`.
+ *
+ * Generated from protobuf field string topic_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setTopicId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->topic_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Configuration of the topic to create. Its `name` field is
+ * ignored.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.Topic topic = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ManagedKafka\V1\Topic|null
+ */
+ public function getTopic()
+ {
+ return $this->topic;
+ }
+
+ public function hasTopic()
+ {
+ return isset($this->topic);
+ }
+
+ public function clearTopic()
+ {
+ unset($this->topic);
+ }
+
+ /**
+ * Required. Configuration of the topic to create. Its `name` field is
+ * ignored.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.Topic topic = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ManagedKafka\V1\Topic $var
+ * @return $this
+ */
+ public function setTopic($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ManagedKafka\V1\Topic::class);
+ $this->topic = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/DeleteClusterRequest.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/DeleteClusterRequest.php
new file mode 100644
index 000000000000..d01b80718e76
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/DeleteClusterRequest.php
@@ -0,0 +1,159 @@
+google.cloud.managedkafka.v1.DeleteClusterRequest
+ */
+class DeleteClusterRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the cluster to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID to avoid duplication of requests. If a request times out or
+ * fails, retrying with the same ID allows the server to recognize the
+ * previous attempt. For at least 60 minutes, the server ignores duplicate
+ * requests bearing the same ID.
+ * For example, consider a situation where you make an initial request and the
+ * request times out. If you make the request again with the same request ID
+ * within 60 minutes of the last request, the server checks if an original
+ * operation with the same request ID was received. If so, the server ignores
+ * the second request.
+ * The request ID must be a valid UUID. A zero UUID is not supported
+ * (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_info) = {
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $name Required. The name of the cluster to delete. Please see
+ * {@see ManagedKafkaClient::clusterName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ManagedKafka\V1\DeleteClusterRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the cluster to delete.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID to avoid duplication of requests. If a request times out or
+ * fails, retrying with the same ID allows the server to recognize the
+ * previous attempt. For at least 60 minutes, the server ignores duplicate
+ * requests bearing the same ID.
+ * For example, consider a situation where you make an initial request and the
+ * request times out. If you make the request again with the same request ID
+ * within 60 minutes of the last request, the server checks if an original
+ * operation with the same request ID was received. If so, the server ignores
+ * the second request.
+ * The request ID must be a valid UUID. A zero UUID is not supported
+ * (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the cluster to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the cluster to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID to avoid duplication of requests. If a request times out or
+ * fails, retrying with the same ID allows the server to recognize the
+ * previous attempt. For at least 60 minutes, the server ignores duplicate
+ * requests bearing the same ID.
+ * For example, consider a situation where you make an initial request and the
+ * request times out. If you make the request again with the same request ID
+ * within 60 minutes of the last request, the server checks if an original
+ * operation with the same request ID was received. If so, the server ignores
+ * the second request.
+ * The request ID must be a valid UUID. A zero UUID is not supported
+ * (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_info) = {
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID to avoid duplication of requests. If a request times out or
+ * fails, retrying with the same ID allows the server to recognize the
+ * previous attempt. For at least 60 minutes, the server ignores duplicate
+ * requests bearing the same ID.
+ * For example, consider a situation where you make an initial request and the
+ * request times out. If you make the request again with the same request ID
+ * within 60 minutes of the last request, the server checks if an original
+ * operation with the same request ID was received. If so, the server ignores
+ * the second request.
+ * The request ID must be a valid UUID. A zero UUID is not supported
+ * (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_info) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/DeleteConsumerGroupRequest.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/DeleteConsumerGroupRequest.php
new file mode 100644
index 000000000000..fec2b3a08134
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/DeleteConsumerGroupRequest.php
@@ -0,0 +1,86 @@
+google.cloud.managedkafka.v1.DeleteConsumerGroupRequest
+ */
+class DeleteConsumerGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the consumer group to delete.
+ * `projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumerGroup}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the consumer group to delete.
+ * `projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumerGroup}`. Please see
+ * {@see ManagedKafkaClient::consumerGroupName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ManagedKafka\V1\DeleteConsumerGroupRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the consumer group to delete.
+ * `projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumerGroup}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the consumer group to delete.
+ * `projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumerGroup}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the consumer group to delete.
+ * `projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumerGroup}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/DeleteTopicRequest.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/DeleteTopicRequest.php
new file mode 100644
index 000000000000..c8f0b94a2ee5
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/DeleteTopicRequest.php
@@ -0,0 +1,86 @@
+google.cloud.managedkafka.v1.DeleteTopicRequest
+ */
+class DeleteTopicRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the topic to delete.
+ * `projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the topic to delete.
+ * `projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}`. Please see
+ * {@see ManagedKafkaClient::topicName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ManagedKafka\V1\DeleteTopicRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the topic to delete.
+ * `projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the topic to delete.
+ * `projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the topic to delete.
+ * `projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/GcpConfig.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/GcpConfig.php
new file mode 100644
index 000000000000..e4bc8e0c167d
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/GcpConfig.php
@@ -0,0 +1,124 @@
+google.cloud.managedkafka.v1.GcpConfig
+ */
+class GcpConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Access configuration for the Kafka cluster.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.AccessConfig access_config = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $access_config = null;
+ /**
+ * Optional. Immutable. The Cloud KMS Key name to use for encryption. The key
+ * must be located in the same region as the cluster and cannot be changed.
+ * Structured like:
+ * projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}.
+ *
+ * Generated from protobuf field string kms_key = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ */
+ protected $kms_key = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ManagedKafka\V1\AccessConfig $access_config
+ * Required. Access configuration for the Kafka cluster.
+ * @type string $kms_key
+ * Optional. Immutable. The Cloud KMS Key name to use for encryption. The key
+ * must be located in the same region as the cluster and cannot be changed.
+ * Structured like:
+ * projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\Resources::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Access configuration for the Kafka cluster.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.AccessConfig access_config = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ManagedKafka\V1\AccessConfig|null
+ */
+ public function getAccessConfig()
+ {
+ return $this->access_config;
+ }
+
+ public function hasAccessConfig()
+ {
+ return isset($this->access_config);
+ }
+
+ public function clearAccessConfig()
+ {
+ unset($this->access_config);
+ }
+
+ /**
+ * Required. Access configuration for the Kafka cluster.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.AccessConfig access_config = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ManagedKafka\V1\AccessConfig $var
+ * @return $this
+ */
+ public function setAccessConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ManagedKafka\V1\AccessConfig::class);
+ $this->access_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Immutable. The Cloud KMS Key name to use for encryption. The key
+ * must be located in the same region as the cluster and cannot be changed.
+ * Structured like:
+ * projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}.
+ *
+ * Generated from protobuf field string kms_key = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getKmsKey()
+ {
+ return $this->kms_key;
+ }
+
+ /**
+ * Optional. Immutable. The Cloud KMS Key name to use for encryption. The key
+ * must be located in the same region as the cluster and cannot be changed.
+ * Structured like:
+ * projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}.
+ *
+ * Generated from protobuf field string kms_key = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setKmsKey($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->kms_key = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/GetClusterRequest.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/GetClusterRequest.php
new file mode 100644
index 000000000000..a0aae7374680
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/GetClusterRequest.php
@@ -0,0 +1,81 @@
+google.cloud.managedkafka.v1.GetClusterRequest
+ */
+class GetClusterRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the cluster whose configuration to return.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the cluster whose configuration to return. Please see
+ * {@see ManagedKafkaClient::clusterName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ManagedKafka\V1\GetClusterRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the cluster whose configuration to return.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the cluster whose configuration to return.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the cluster whose configuration to return.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/GetConsumerGroupRequest.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/GetConsumerGroupRequest.php
new file mode 100644
index 000000000000..05104476d0a0
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/GetConsumerGroupRequest.php
@@ -0,0 +1,86 @@
+google.cloud.managedkafka.v1.GetConsumerGroupRequest
+ */
+class GetConsumerGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the consumer group whose configuration to return.
+ * `projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumerGroup}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the consumer group whose configuration to return.
+ * `projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumerGroup}`. Please see
+ * {@see ManagedKafkaClient::consumerGroupName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ManagedKafka\V1\GetConsumerGroupRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the consumer group whose configuration to return.
+ * `projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumerGroup}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the consumer group whose configuration to return.
+ * `projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumerGroup}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the consumer group whose configuration to return.
+ * `projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumerGroup}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/GetTopicRequest.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/GetTopicRequest.php
new file mode 100644
index 000000000000..49f1ad997717
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/GetTopicRequest.php
@@ -0,0 +1,91 @@
+google.cloud.managedkafka.v1.GetTopicRequest
+ */
+class GetTopicRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the topic whose configuration to return. Structured
+ * like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the topic whose configuration to return. Structured
+ * like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}. Please see
+ * {@see ManagedKafkaClient::topicName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ManagedKafka\V1\GetTopicRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the topic whose configuration to return. Structured
+ * like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the topic whose configuration to return. Structured
+ * like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the topic whose configuration to return. Structured
+ * like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListClustersRequest.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListClustersRequest.php
new file mode 100644
index 000000000000..aa5222147449
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListClustersRequest.php
@@ -0,0 +1,242 @@
+google.cloud.managedkafka.v1.ListClustersRequest
+ */
+class ListClustersRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent location whose clusters are to be listed. Structured
+ * like `projects/{project}/locations/{location}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of clusters to return. The service may return
+ * fewer than this value. If unspecified, server will pick an appropriate
+ * default.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. A page token, received from a previous `ListClusters` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListClusters` must match
+ * the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+ /**
+ * Optional. Filter expression for the result.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Order by fields for the result.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. The parent location whose clusters are to be listed. Structured
+ * like `projects/{project}/locations/{location}`. Please see
+ * {@see ManagedKafkaClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ManagedKafka\V1\ListClustersRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The parent location whose clusters are to be listed. Structured
+ * like `projects/{project}/locations/{location}`.
+ * @type int $page_size
+ * Optional. The maximum number of clusters to return. The service may return
+ * fewer than this value. If unspecified, server will pick an appropriate
+ * default.
+ * @type string $page_token
+ * Optional. A page token, received from a previous `ListClusters` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListClusters` must match
+ * the call that provided the page token.
+ * @type string $filter
+ * Optional. Filter expression for the result.
+ * @type string $order_by
+ * Optional. Order by fields for the result.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent location whose clusters are to be listed. Structured
+ * like `projects/{project}/locations/{location}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The parent location whose clusters are to be listed. Structured
+ * like `projects/{project}/locations/{location}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The maximum number of clusters to return. The service may return
+ * fewer than this value. If unspecified, server will pick an appropriate
+ * default.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. The maximum number of clusters to return. The service may return
+ * fewer than this value. If unspecified, server will pick an appropriate
+ * default.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A page token, received from a previous `ListClusters` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListClusters` must match
+ * the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. A page token, received from a previous `ListClusters` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListClusters` must match
+ * the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Filter expression for the result.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. Filter expression for the result.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Order by fields for the result.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Order by fields for the result.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListClustersResponse.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListClustersResponse.php
new file mode 100644
index 000000000000..f02d1357fbc3
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListClustersResponse.php
@@ -0,0 +1,139 @@
+google.cloud.managedkafka.v1.ListClustersResponse
+ */
+class ListClustersResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of Clusters in the requested parent.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedkafka.v1.Cluster clusters = 1;
+ */
+ private $clusters;
+ /**
+ * A token that can be sent as `page_token` to retrieve the next page of
+ * results. If this field is omitted, there are no more results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ManagedKafka\V1\Cluster>|\Google\Protobuf\Internal\RepeatedField $clusters
+ * The list of Clusters in the requested parent.
+ * @type string $next_page_token
+ * A token that can be sent as `page_token` to retrieve the next page of
+ * results. If this field is omitted, there are no more results.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of Clusters in the requested parent.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedkafka.v1.Cluster clusters = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getClusters()
+ {
+ return $this->clusters;
+ }
+
+ /**
+ * The list of Clusters in the requested parent.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedkafka.v1.Cluster clusters = 1;
+ * @param array<\Google\Cloud\ManagedKafka\V1\Cluster>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setClusters($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ManagedKafka\V1\Cluster::class);
+ $this->clusters = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token that can be sent as `page_token` to retrieve the next page of
+ * results. If this field is omitted, there are no more results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token that can be sent as `page_token` to retrieve the next page of
+ * results. If this field is omitted, there are no more results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListConsumerGroupsRequest.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListConsumerGroupsRequest.php
new file mode 100644
index 000000000000..d201e3bc513c
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListConsumerGroupsRequest.php
@@ -0,0 +1,179 @@
+google.cloud.managedkafka.v1.ListConsumerGroupsRequest
+ */
+class ListConsumerGroupsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent cluster whose consumer groups are to be listed.
+ * Structured like
+ * `projects/{project}/locations/{location}/clusters/{cluster}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of consumer groups to return. The service may
+ * return fewer than this value. If unset or zero, all consumer groups for the
+ * parent is returned.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. A page token, received from a previous `ListConsumerGroups` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListConsumerGroups` must
+ * match the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. The parent cluster whose consumer groups are to be listed.
+ * Structured like
+ * `projects/{project}/locations/{location}/clusters/{cluster}`. Please see
+ * {@see ManagedKafkaClient::clusterName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ManagedKafka\V1\ListConsumerGroupsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The parent cluster whose consumer groups are to be listed.
+ * Structured like
+ * `projects/{project}/locations/{location}/clusters/{cluster}`.
+ * @type int $page_size
+ * Optional. The maximum number of consumer groups to return. The service may
+ * return fewer than this value. If unset or zero, all consumer groups for the
+ * parent is returned.
+ * @type string $page_token
+ * Optional. A page token, received from a previous `ListConsumerGroups` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListConsumerGroups` must
+ * match the call that provided the page token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent cluster whose consumer groups are to be listed.
+ * Structured like
+ * `projects/{project}/locations/{location}/clusters/{cluster}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The parent cluster whose consumer groups are to be listed.
+ * Structured like
+ * `projects/{project}/locations/{location}/clusters/{cluster}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The maximum number of consumer groups to return. The service may
+ * return fewer than this value. If unset or zero, all consumer groups for the
+ * parent is returned.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. The maximum number of consumer groups to return. The service may
+ * return fewer than this value. If unset or zero, all consumer groups for the
+ * parent is returned.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A page token, received from a previous `ListConsumerGroups` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListConsumerGroups` must
+ * match the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. A page token, received from a previous `ListConsumerGroups` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListConsumerGroups` must
+ * match the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListConsumerGroupsResponse.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListConsumerGroupsResponse.php
new file mode 100644
index 000000000000..abcaff0766b1
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListConsumerGroupsResponse.php
@@ -0,0 +1,109 @@
+google.cloud.managedkafka.v1.ListConsumerGroupsResponse
+ */
+class ListConsumerGroupsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of consumer group in the requested parent. The order of the
+ * consumer groups is unspecified.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedkafka.v1.ConsumerGroup consumer_groups = 1;
+ */
+ private $consumer_groups;
+ /**
+ * A token that can be sent as `page_token` to retrieve the next page of
+ * results. If this field is omitted, there are no more results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ManagedKafka\V1\ConsumerGroup>|\Google\Protobuf\Internal\RepeatedField $consumer_groups
+ * The list of consumer group in the requested parent. The order of the
+ * consumer groups is unspecified.
+ * @type string $next_page_token
+ * A token that can be sent as `page_token` to retrieve the next page of
+ * results. If this field is omitted, there are no more results.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of consumer group in the requested parent. The order of the
+ * consumer groups is unspecified.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedkafka.v1.ConsumerGroup consumer_groups = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getConsumerGroups()
+ {
+ return $this->consumer_groups;
+ }
+
+ /**
+ * The list of consumer group in the requested parent. The order of the
+ * consumer groups is unspecified.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedkafka.v1.ConsumerGroup consumer_groups = 1;
+ * @param array<\Google\Cloud\ManagedKafka\V1\ConsumerGroup>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setConsumerGroups($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ManagedKafka\V1\ConsumerGroup::class);
+ $this->consumer_groups = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token that can be sent as `page_token` to retrieve the next page of
+ * results. If this field is omitted, there are no more results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token that can be sent as `page_token` to retrieve the next page of
+ * results. If this field is omitted, there are no more results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListTopicsRequest.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListTopicsRequest.php
new file mode 100644
index 000000000000..cae01297e741
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListTopicsRequest.php
@@ -0,0 +1,174 @@
+google.cloud.managedkafka.v1.ListTopicsRequest
+ */
+class ListTopicsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent cluster whose topics are to be listed. Structured like
+ * `projects/{project}/locations/{location}/clusters/{cluster}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of topics to return. The service may return
+ * fewer than this value. If unset or zero, all topics for the parent is
+ * returned.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. A page token, received from a previous `ListTopics` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListTopics` must match
+ * the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. The parent cluster whose topics are to be listed. Structured like
+ * `projects/{project}/locations/{location}/clusters/{cluster}`. Please see
+ * {@see ManagedKafkaClient::clusterName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ManagedKafka\V1\ListTopicsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The parent cluster whose topics are to be listed. Structured like
+ * `projects/{project}/locations/{location}/clusters/{cluster}`.
+ * @type int $page_size
+ * Optional. The maximum number of topics to return. The service may return
+ * fewer than this value. If unset or zero, all topics for the parent is
+ * returned.
+ * @type string $page_token
+ * Optional. A page token, received from a previous `ListTopics` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListTopics` must match
+ * the call that provided the page token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent cluster whose topics are to be listed. Structured like
+ * `projects/{project}/locations/{location}/clusters/{cluster}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The parent cluster whose topics are to be listed. Structured like
+ * `projects/{project}/locations/{location}/clusters/{cluster}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The maximum number of topics to return. The service may return
+ * fewer than this value. If unset or zero, all topics for the parent is
+ * returned.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. The maximum number of topics to return. The service may return
+ * fewer than this value. If unset or zero, all topics for the parent is
+ * returned.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A page token, received from a previous `ListTopics` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListTopics` must match
+ * the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. A page token, received from a previous `ListTopics` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListTopics` must match
+ * the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListTopicsResponse.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListTopicsResponse.php
new file mode 100644
index 000000000000..c9437db1809b
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/ListTopicsResponse.php
@@ -0,0 +1,109 @@
+google.cloud.managedkafka.v1.ListTopicsResponse
+ */
+class ListTopicsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of topics in the requested parent. The order of the topics is
+ * unspecified.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedkafka.v1.Topic topics = 1;
+ */
+ private $topics;
+ /**
+ * A token that can be sent as `page_token` to retrieve the next page of
+ * results. If this field is omitted, there are no more results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ManagedKafka\V1\Topic>|\Google\Protobuf\Internal\RepeatedField $topics
+ * The list of topics in the requested parent. The order of the topics is
+ * unspecified.
+ * @type string $next_page_token
+ * A token that can be sent as `page_token` to retrieve the next page of
+ * results. If this field is omitted, there are no more results.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of topics in the requested parent. The order of the topics is
+ * unspecified.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedkafka.v1.Topic topics = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTopics()
+ {
+ return $this->topics;
+ }
+
+ /**
+ * The list of topics in the requested parent. The order of the topics is
+ * unspecified.
+ *
+ * Generated from protobuf field repeated .google.cloud.managedkafka.v1.Topic topics = 1;
+ * @param array<\Google\Cloud\ManagedKafka\V1\Topic>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTopics($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ManagedKafka\V1\Topic::class);
+ $this->topics = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token that can be sent as `page_token` to retrieve the next page of
+ * results. If this field is omitted, there are no more results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token that can be sent as `page_token` to retrieve the next page of
+ * results. If this field is omitted, there are no more results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/NetworkConfig.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/NetworkConfig.php
new file mode 100644
index 000000000000..c0efa7fdf8ad
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/NetworkConfig.php
@@ -0,0 +1,96 @@
+google.cloud.managedkafka.v1.NetworkConfig
+ */
+class NetworkConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the VPC subnet in which to create Private Service Connect
+ * (PSC) endpoints for the Kafka brokers and bootstrap address. Structured
+ * like: projects/{project}/regions/{region}/subnetworks/{subnet_id}
+ * The subnet must be located in the same region as the Kafka cluster. The
+ * project may differ. Multiple subnets from the same parent network must not
+ * be specified.
+ * The CIDR range of the subnet must be within the IPv4 address ranges for
+ * private networks, as specified in RFC 1918.
+ *
+ * Generated from protobuf field string subnet = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $subnet = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $subnet
+ * Required. Name of the VPC subnet in which to create Private Service Connect
+ * (PSC) endpoints for the Kafka brokers and bootstrap address. Structured
+ * like: projects/{project}/regions/{region}/subnetworks/{subnet_id}
+ * The subnet must be located in the same region as the Kafka cluster. The
+ * project may differ. Multiple subnets from the same parent network must not
+ * be specified.
+ * The CIDR range of the subnet must be within the IPv4 address ranges for
+ * private networks, as specified in RFC 1918.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\Resources::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the VPC subnet in which to create Private Service Connect
+ * (PSC) endpoints for the Kafka brokers and bootstrap address. Structured
+ * like: projects/{project}/regions/{region}/subnetworks/{subnet_id}
+ * The subnet must be located in the same region as the Kafka cluster. The
+ * project may differ. Multiple subnets from the same parent network must not
+ * be specified.
+ * The CIDR range of the subnet must be within the IPv4 address ranges for
+ * private networks, as specified in RFC 1918.
+ *
+ * Generated from protobuf field string subnet = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getSubnet()
+ {
+ return $this->subnet;
+ }
+
+ /**
+ * Required. Name of the VPC subnet in which to create Private Service Connect
+ * (PSC) endpoints for the Kafka brokers and bootstrap address. Structured
+ * like: projects/{project}/regions/{region}/subnetworks/{subnet_id}
+ * The subnet must be located in the same region as the Kafka cluster. The
+ * project may differ. Multiple subnets from the same parent network must not
+ * be specified.
+ * The CIDR range of the subnet must be within the IPv4 address ranges for
+ * private networks, as specified in RFC 1918.
+ *
+ * Generated from protobuf field string subnet = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setSubnet($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->subnet = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/OperationMetadata.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/OperationMetadata.php
new file mode 100644
index 000000000000..ebfd69902bdd
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/OperationMetadata.php
@@ -0,0 +1,307 @@
+google.cloud.managedkafka.v1.OperationMetadata
+ */
+class OperationMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $target = '';
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $verb = '';
+ /**
+ * Output only. Human-readable status of the operation, if any.
+ *
+ * Generated from protobuf field string status_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $status_message = '';
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have been cancelled successfully
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $requested_cancellation = false;
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $api_version = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time the operation was created.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time the operation finished running.
+ * @type string $target
+ * Output only. Server-defined resource path for the target of the operation.
+ * @type string $verb
+ * Output only. Name of the verb executed by the operation.
+ * @type string $status_message
+ * Output only. Human-readable status of the operation, if any.
+ * @type bool $requested_cancellation
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have been cancelled successfully
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ * @type string $api_version
+ * Output only. API version used to start the operation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\Resources::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEndTime()
+ {
+ return $this->end_time;
+ }
+
+ public function hasEndTime()
+ {
+ return isset($this->end_time);
+ }
+
+ public function clearEndTime()
+ {
+ unset($this->end_time);
+ }
+
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getTarget()
+ {
+ return $this->target;
+ }
+
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setTarget($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getVerb()
+ {
+ return $this->verb;
+ }
+
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setVerb($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->verb = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Human-readable status of the operation, if any.
+ *
+ * Generated from protobuf field string status_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStatusMessage()
+ {
+ return $this->status_message;
+ }
+
+ /**
+ * Output only. Human-readable status of the operation, if any.
+ *
+ * Generated from protobuf field string status_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStatusMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->status_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have been cancelled successfully
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getRequestedCancellation()
+ {
+ return $this->requested_cancellation;
+ }
+
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have been cancelled successfully
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setRequestedCancellation($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->requested_cancellation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getApiVersion()
+ {
+ return $this->api_version;
+ }
+
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setApiVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->api_version = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/RebalanceConfig.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/RebalanceConfig.php
new file mode 100644
index 000000000000..b13164db93f7
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/RebalanceConfig.php
@@ -0,0 +1,71 @@
+google.cloud.managedkafka.v1.RebalanceConfig
+ */
+class RebalanceConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The rebalance behavior for the cluster.
+ * When not specified, defaults to `NO_REBALANCE`.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.RebalanceConfig.Mode mode = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $mode = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $mode
+ * Optional. The rebalance behavior for the cluster.
+ * When not specified, defaults to `NO_REBALANCE`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\Resources::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The rebalance behavior for the cluster.
+ * When not specified, defaults to `NO_REBALANCE`.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.RebalanceConfig.Mode mode = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getMode()
+ {
+ return $this->mode;
+ }
+
+ /**
+ * Optional. The rebalance behavior for the cluster.
+ * When not specified, defaults to `NO_REBALANCE`.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.RebalanceConfig.Mode mode = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ManagedKafka\V1\RebalanceConfig\Mode::class);
+ $this->mode = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/RebalanceConfig/Mode.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/RebalanceConfig/Mode.php
new file mode 100644
index 000000000000..d2c73ce51672
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/RebalanceConfig/Mode.php
@@ -0,0 +1,65 @@
+google.cloud.managedkafka.v1.RebalanceConfig.Mode
+ */
+class Mode
+{
+ /**
+ * A mode was not specified. Do not use.
+ *
+ * Generated from protobuf enum MODE_UNSPECIFIED = 0;
+ */
+ const MODE_UNSPECIFIED = 0;
+ /**
+ * Do not rebalance automatically.
+ *
+ * Generated from protobuf enum NO_REBALANCE = 1;
+ */
+ const NO_REBALANCE = 1;
+ /**
+ * Automatically rebalance topic partitions among brokers when the
+ * cluster is scaled up.
+ *
+ * Generated from protobuf enum AUTO_REBALANCE_ON_SCALE_UP = 2;
+ */
+ const AUTO_REBALANCE_ON_SCALE_UP = 2;
+
+ private static $valueToName = [
+ self::MODE_UNSPECIFIED => 'MODE_UNSPECIFIED',
+ self::NO_REBALANCE => 'NO_REBALANCE',
+ self::AUTO_REBALANCE_ON_SCALE_UP => 'AUTO_REBALANCE_ON_SCALE_UP',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Mode::class, \Google\Cloud\ManagedKafka\V1\RebalanceConfig_Mode::class);
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/Topic.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/Topic.php
new file mode 100644
index 000000000000..da04d6f0f968
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/Topic.php
@@ -0,0 +1,201 @@
+google.cloud.managedkafka.v1.Topic
+ */
+class Topic extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Identifier. The name of the topic. The `topic` segment is used when
+ * connecting directly to the cluster. Structured like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ */
+ protected $name = '';
+ /**
+ * Required. The number of partitions this topic has. The partition count can
+ * only be increased, not decreased. Please note that if partitions are
+ * increased for a topic that has a key, the partitioning logic or the
+ * ordering of the messages will be affected.
+ *
+ * Generated from protobuf field int32 partition_count = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $partition_count = 0;
+ /**
+ * Required. Immutable. The number of replicas of each partition. A
+ * replication factor of 3 is recommended for high availability.
+ *
+ * Generated from protobuf field int32 replication_factor = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $replication_factor = 0;
+ /**
+ * Optional. Configurations for the topic that are overridden from the cluster
+ * defaults. The key of the map is a Kafka topic property name, for example:
+ * `cleanup.policy`, `compression.type`.
+ *
+ * Generated from protobuf field map configs = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $configs;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Identifier. The name of the topic. The `topic` segment is used when
+ * connecting directly to the cluster. Structured like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}
+ * @type int $partition_count
+ * Required. The number of partitions this topic has. The partition count can
+ * only be increased, not decreased. Please note that if partitions are
+ * increased for a topic that has a key, the partitioning logic or the
+ * ordering of the messages will be affected.
+ * @type int $replication_factor
+ * Required. Immutable. The number of replicas of each partition. A
+ * replication factor of 3 is recommended for high availability.
+ * @type array|\Google\Protobuf\Internal\MapField $configs
+ * Optional. Configurations for the topic that are overridden from the cluster
+ * defaults. The key of the map is a Kafka topic property name, for example:
+ * `cleanup.policy`, `compression.type`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\Resources::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Identifier. The name of the topic. The `topic` segment is used when
+ * connecting directly to the cluster. Structured like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Identifier. The name of the topic. The `topic` segment is used when
+ * connecting directly to the cluster. Structured like:
+ * projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The number of partitions this topic has. The partition count can
+ * only be increased, not decreased. Please note that if partitions are
+ * increased for a topic that has a key, the partitioning logic or the
+ * ordering of the messages will be affected.
+ *
+ * Generated from protobuf field int32 partition_count = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getPartitionCount()
+ {
+ return $this->partition_count;
+ }
+
+ /**
+ * Required. The number of partitions this topic has. The partition count can
+ * only be increased, not decreased. Please note that if partitions are
+ * increased for a topic that has a key, the partitioning logic or the
+ * ordering of the messages will be affected.
+ *
+ * Generated from protobuf field int32 partition_count = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setPartitionCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->partition_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Immutable. The number of replicas of each partition. A
+ * replication factor of 3 is recommended for high availability.
+ *
+ * Generated from protobuf field int32 replication_factor = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE];
+ * @return int
+ */
+ public function getReplicationFactor()
+ {
+ return $this->replication_factor;
+ }
+
+ /**
+ * Required. Immutable. The number of replicas of each partition. A
+ * replication factor of 3 is recommended for high availability.
+ *
+ * Generated from protobuf field int32 replication_factor = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE];
+ * @param int $var
+ * @return $this
+ */
+ public function setReplicationFactor($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->replication_factor = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Configurations for the topic that are overridden from the cluster
+ * defaults. The key of the map is a Kafka topic property name, for example:
+ * `cleanup.policy`, `compression.type`.
+ *
+ * Generated from protobuf field map configs = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getConfigs()
+ {
+ return $this->configs;
+ }
+
+ /**
+ * Optional. Configurations for the topic that are overridden from the cluster
+ * defaults. The key of the map is a Kafka topic property name, for example:
+ * `cleanup.policy`, `compression.type`.
+ *
+ * Generated from protobuf field map configs = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setConfigs($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->configs = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/UpdateClusterRequest.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/UpdateClusterRequest.php
new file mode 100644
index 000000000000..93b64c314b65
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/UpdateClusterRequest.php
@@ -0,0 +1,234 @@
+google.cloud.managedkafka.v1.UpdateClusterRequest
+ */
+class UpdateClusterRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * cluster resource by the update. The fields specified in the update_mask are
+ * relative to the resource, not the full request. A field will be overwritten
+ * if it is in the mask. The mask is required and a value of * will update all
+ * fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The cluster to update. Its `name` field must be populated.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.Cluster cluster = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $cluster = null;
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID to avoid duplication of requests. If a request times out or
+ * fails, retrying with the same ID allows the server to recognize the
+ * previous attempt. For at least 60 minutes, the server ignores duplicate
+ * requests bearing the same ID.
+ * For example, consider a situation where you make an initial request and the
+ * request times out. If you make the request again with the same request ID
+ * within 60 minutes of the last request, the server checks if an original
+ * operation with the same request ID was received. If so, the server ignores
+ * the second request.
+ * The request ID must be a valid UUID. A zero UUID is not supported
+ * (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_info) = {
+ */
+ protected $request_id = '';
+
+ /**
+ * @param \Google\Cloud\ManagedKafka\V1\Cluster $cluster Required. The cluster to update. Its `name` field must be populated.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * cluster resource by the update. The fields specified in the update_mask are
+ * relative to the resource, not the full request. A field will be overwritten
+ * if it is in the mask. The mask is required and a value of * will update all
+ * fields.
+ *
+ * @return \Google\Cloud\ManagedKafka\V1\UpdateClusterRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\ManagedKafka\V1\Cluster $cluster, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setCluster($cluster)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * cluster resource by the update. The fields specified in the update_mask are
+ * relative to the resource, not the full request. A field will be overwritten
+ * if it is in the mask. The mask is required and a value of * will update all
+ * fields.
+ * @type \Google\Cloud\ManagedKafka\V1\Cluster $cluster
+ * Required. The cluster to update. Its `name` field must be populated.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID to avoid duplication of requests. If a request times out or
+ * fails, retrying with the same ID allows the server to recognize the
+ * previous attempt. For at least 60 minutes, the server ignores duplicate
+ * requests bearing the same ID.
+ * For example, consider a situation where you make an initial request and the
+ * request times out. If you make the request again with the same request ID
+ * within 60 minutes of the last request, the server checks if an original
+ * operation with the same request ID was received. If so, the server ignores
+ * the second request.
+ * The request ID must be a valid UUID. A zero UUID is not supported
+ * (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * cluster resource by the update. The fields specified in the update_mask are
+ * relative to the resource, not the full request. A field will be overwritten
+ * if it is in the mask. The mask is required and a value of * will update all
+ * fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * cluster resource by the update. The fields specified in the update_mask are
+ * relative to the resource, not the full request. A field will be overwritten
+ * if it is in the mask. The mask is required and a value of * will update all
+ * fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The cluster to update. Its `name` field must be populated.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.Cluster cluster = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ManagedKafka\V1\Cluster|null
+ */
+ public function getCluster()
+ {
+ return $this->cluster;
+ }
+
+ public function hasCluster()
+ {
+ return isset($this->cluster);
+ }
+
+ public function clearCluster()
+ {
+ unset($this->cluster);
+ }
+
+ /**
+ * Required. The cluster to update. Its `name` field must be populated.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.Cluster cluster = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ManagedKafka\V1\Cluster $var
+ * @return $this
+ */
+ public function setCluster($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ManagedKafka\V1\Cluster::class);
+ $this->cluster = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID to avoid duplication of requests. If a request times out or
+ * fails, retrying with the same ID allows the server to recognize the
+ * previous attempt. For at least 60 minutes, the server ignores duplicate
+ * requests bearing the same ID.
+ * For example, consider a situation where you make an initial request and the
+ * request times out. If you make the request again with the same request ID
+ * within 60 minutes of the last request, the server checks if an original
+ * operation with the same request ID was received. If so, the server ignores
+ * the second request.
+ * The request ID must be a valid UUID. A zero UUID is not supported
+ * (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_info) = {
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID to avoid duplication of requests. If a request times out or
+ * fails, retrying with the same ID allows the server to recognize the
+ * previous attempt. For at least 60 minutes, the server ignores duplicate
+ * requests bearing the same ID.
+ * For example, consider a situation where you make an initial request and the
+ * request times out. If you make the request again with the same request ID
+ * within 60 minutes of the last request, the server checks if an original
+ * operation with the same request ID was received. If so, the server ignores
+ * the second request.
+ * The request ID must be a valid UUID. A zero UUID is not supported
+ * (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_info) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/UpdateConsumerGroupRequest.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/UpdateConsumerGroupRequest.php
new file mode 100644
index 000000000000..dcdd3471a832
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/UpdateConsumerGroupRequest.php
@@ -0,0 +1,156 @@
+google.cloud.managedkafka.v1.UpdateConsumerGroupRequest
+ */
+class UpdateConsumerGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * ConsumerGroup resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. The
+ * mask is required and a value of * will update all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The consumer group to update. Its `name` field must be populated.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.ConsumerGroup consumer_group = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $consumer_group = null;
+
+ /**
+ * @param \Google\Cloud\ManagedKafka\V1\ConsumerGroup $consumerGroup Required. The consumer group to update. Its `name` field must be populated.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * ConsumerGroup resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. The
+ * mask is required and a value of * will update all fields.
+ *
+ * @return \Google\Cloud\ManagedKafka\V1\UpdateConsumerGroupRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\ManagedKafka\V1\ConsumerGroup $consumerGroup, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setConsumerGroup($consumerGroup)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * ConsumerGroup resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. The
+ * mask is required and a value of * will update all fields.
+ * @type \Google\Cloud\ManagedKafka\V1\ConsumerGroup $consumer_group
+ * Required. The consumer group to update. Its `name` field must be populated.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * ConsumerGroup resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. The
+ * mask is required and a value of * will update all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * ConsumerGroup resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. The
+ * mask is required and a value of * will update all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The consumer group to update. Its `name` field must be populated.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.ConsumerGroup consumer_group = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ManagedKafka\V1\ConsumerGroup|null
+ */
+ public function getConsumerGroup()
+ {
+ return $this->consumer_group;
+ }
+
+ public function hasConsumerGroup()
+ {
+ return isset($this->consumer_group);
+ }
+
+ public function clearConsumerGroup()
+ {
+ unset($this->consumer_group);
+ }
+
+ /**
+ * Required. The consumer group to update. Its `name` field must be populated.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.ConsumerGroup consumer_group = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ManagedKafka\V1\ConsumerGroup $var
+ * @return $this
+ */
+ public function setConsumerGroup($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ManagedKafka\V1\ConsumerGroup::class);
+ $this->consumer_group = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/UpdateTopicRequest.php b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/UpdateTopicRequest.php
new file mode 100644
index 000000000000..3e2a1f8792eb
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/proto/src/Google/Cloud/ManagedKafka/V1/UpdateTopicRequest.php
@@ -0,0 +1,156 @@
+google.cloud.managedkafka.v1.UpdateTopicRequest
+ */
+class UpdateTopicRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * Topic resource by the update. The fields specified in the update_mask are
+ * relative to the resource, not the full request. A field will be overwritten
+ * if it is in the mask. The mask is required and a value of * will update all
+ * fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The topic to update. Its `name` field must be populated.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.Topic topic = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $topic = null;
+
+ /**
+ * @param \Google\Cloud\ManagedKafka\V1\Topic $topic Required. The topic to update. Its `name` field must be populated.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * Topic resource by the update. The fields specified in the update_mask are
+ * relative to the resource, not the full request. A field will be overwritten
+ * if it is in the mask. The mask is required and a value of * will update all
+ * fields.
+ *
+ * @return \Google\Cloud\ManagedKafka\V1\UpdateTopicRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\ManagedKafka\V1\Topic $topic, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setTopic($topic)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * Topic resource by the update. The fields specified in the update_mask are
+ * relative to the resource, not the full request. A field will be overwritten
+ * if it is in the mask. The mask is required and a value of * will update all
+ * fields.
+ * @type \Google\Cloud\ManagedKafka\V1\Topic $topic
+ * Required. The topic to update. Its `name` field must be populated.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Managedkafka\V1\ManagedKafka::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * Topic resource by the update. The fields specified in the update_mask are
+ * relative to the resource, not the full request. A field will be overwritten
+ * if it is in the mask. The mask is required and a value of * will update all
+ * fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * Topic resource by the update. The fields specified in the update_mask are
+ * relative to the resource, not the full request. A field will be overwritten
+ * if it is in the mask. The mask is required and a value of * will update all
+ * fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The topic to update. Its `name` field must be populated.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.Topic topic = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ManagedKafka\V1\Topic|null
+ */
+ public function getTopic()
+ {
+ return $this->topic;
+ }
+
+ public function hasTopic()
+ {
+ return isset($this->topic);
+ }
+
+ public function clearTopic()
+ {
+ unset($this->topic);
+ }
+
+ /**
+ * Required. The topic to update. Its `name` field must be populated.
+ *
+ * Generated from protobuf field .google.cloud.managedkafka.v1.Topic topic = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ManagedKafka\V1\Topic $var
+ * @return $this
+ */
+ public function setTopic($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ManagedKafka\V1\Topic::class);
+ $this->topic = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/create_cluster.php b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/create_cluster.php
new file mode 100644
index 000000000000..2a7f3f1cc01a
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/create_cluster.php
@@ -0,0 +1,138 @@
+setSubnet($clusterGcpConfigAccessConfigNetworkConfigsSubnet);
+ $clusterGcpConfigAccessConfigNetworkConfigs = [$networkConfig,];
+ $clusterGcpConfigAccessConfig = (new AccessConfig())
+ ->setNetworkConfigs($clusterGcpConfigAccessConfigNetworkConfigs);
+ $clusterGcpConfig = (new GcpConfig())
+ ->setAccessConfig($clusterGcpConfigAccessConfig);
+ $clusterCapacityConfig = (new CapacityConfig())
+ ->setVcpuCount($clusterCapacityConfigVcpuCount)
+ ->setMemoryBytes($clusterCapacityConfigMemoryBytes);
+ $cluster = (new Cluster())
+ ->setGcpConfig($clusterGcpConfig)
+ ->setCapacityConfig($clusterCapacityConfig);
+ $request = (new CreateClusterRequest())
+ ->setParent($formattedParent)
+ ->setClusterId($clusterId)
+ ->setCluster($cluster);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $managedKafkaClient->createCluster($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Cluster $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ManagedKafkaClient::locationName('[PROJECT]', '[LOCATION]');
+ $clusterId = '[CLUSTER_ID]';
+ $clusterGcpConfigAccessConfigNetworkConfigsSubnet = '[SUBNET]';
+ $clusterCapacityConfigVcpuCount = 0;
+ $clusterCapacityConfigMemoryBytes = 0;
+
+ create_cluster_sample(
+ $formattedParent,
+ $clusterId,
+ $clusterGcpConfigAccessConfigNetworkConfigsSubnet,
+ $clusterCapacityConfigVcpuCount,
+ $clusterCapacityConfigMemoryBytes
+ );
+}
+// [END managedkafka_v1_generated_ManagedKafka_CreateCluster_sync]
diff --git a/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/create_topic.php b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/create_topic.php
new file mode 100644
index 000000000000..0cc45662eb29
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/create_topic.php
@@ -0,0 +1,95 @@
+setPartitionCount($topicPartitionCount)
+ ->setReplicationFactor($topicReplicationFactor);
+ $request = (new CreateTopicRequest())
+ ->setParent($formattedParent)
+ ->setTopicId($topicId)
+ ->setTopic($topic);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Topic $response */
+ $response = $managedKafkaClient->createTopic($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ManagedKafkaClient::clusterName('[PROJECT]', '[LOCATION]', '[CLUSTER]');
+ $topicId = '[TOPIC_ID]';
+ $topicPartitionCount = 0;
+ $topicReplicationFactor = 0;
+
+ create_topic_sample($formattedParent, $topicId, $topicPartitionCount, $topicReplicationFactor);
+}
+// [END managedkafka_v1_generated_ManagedKafka_CreateTopic_sync]
diff --git a/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/delete_cluster.php b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/delete_cluster.php
new file mode 100644
index 000000000000..f028249f7cd8
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/delete_cluster.php
@@ -0,0 +1,80 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $managedKafkaClient->deleteCluster($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ManagedKafkaClient::clusterName('[PROJECT]', '[LOCATION]', '[CLUSTER]');
+
+ delete_cluster_sample($formattedName);
+}
+// [END managedkafka_v1_generated_ManagedKafka_DeleteCluster_sync]
diff --git a/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/delete_consumer_group.php b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/delete_consumer_group.php
new file mode 100644
index 000000000000..d953c6d7c30e
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/delete_consumer_group.php
@@ -0,0 +1,75 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $managedKafkaClient->deleteConsumerGroup($request);
+ printf('Call completed successfully.' . PHP_EOL);
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ManagedKafkaClient::consumerGroupName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[CLUSTER]',
+ '[CONSUMER_GROUP]'
+ );
+
+ delete_consumer_group_sample($formattedName);
+}
+// [END managedkafka_v1_generated_ManagedKafka_DeleteConsumerGroup_sync]
diff --git a/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/delete_topic.php b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/delete_topic.php
new file mode 100644
index 000000000000..f2e8ee9e3cbf
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/delete_topic.php
@@ -0,0 +1,70 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $managedKafkaClient->deleteTopic($request);
+ printf('Call completed successfully.' . PHP_EOL);
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ManagedKafkaClient::topicName('[PROJECT]', '[LOCATION]', '[CLUSTER]', '[TOPIC]');
+
+ delete_topic_sample($formattedName);
+}
+// [END managedkafka_v1_generated_ManagedKafka_DeleteTopic_sync]
diff --git a/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/get_cluster.php b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/get_cluster.php
new file mode 100644
index 000000000000..5c3fc319d4f9
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/get_cluster.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Cluster $response */
+ $response = $managedKafkaClient->getCluster($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ManagedKafkaClient::clusterName('[PROJECT]', '[LOCATION]', '[CLUSTER]');
+
+ get_cluster_sample($formattedName);
+}
+// [END managedkafka_v1_generated_ManagedKafka_GetCluster_sync]
diff --git a/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/get_consumer_group.php b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/get_consumer_group.php
new file mode 100644
index 000000000000..ebbfda931847
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/get_consumer_group.php
@@ -0,0 +1,77 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ConsumerGroup $response */
+ $response = $managedKafkaClient->getConsumerGroup($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ManagedKafkaClient::consumerGroupName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[CLUSTER]',
+ '[CONSUMER_GROUP]'
+ );
+
+ get_consumer_group_sample($formattedName);
+}
+// [END managedkafka_v1_generated_ManagedKafka_GetConsumerGroup_sync]
diff --git a/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/get_location.php b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/get_location.php
new file mode 100644
index 000000000000..54ef42f76ae7
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/get_location.php
@@ -0,0 +1,57 @@
+getLocation($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END managedkafka_v1_generated_ManagedKafka_GetLocation_sync]
diff --git a/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/get_topic.php b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/get_topic.php
new file mode 100644
index 000000000000..48c3f4d04e00
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/get_topic.php
@@ -0,0 +1,73 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Topic $response */
+ $response = $managedKafkaClient->getTopic($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ManagedKafkaClient::topicName('[PROJECT]', '[LOCATION]', '[CLUSTER]', '[TOPIC]');
+
+ get_topic_sample($formattedName);
+}
+// [END managedkafka_v1_generated_ManagedKafka_GetTopic_sync]
diff --git a/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/list_clusters.php b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/list_clusters.php
new file mode 100644
index 000000000000..0a4b0a051a9f
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/list_clusters.php
@@ -0,0 +1,77 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $managedKafkaClient->listClusters($request);
+
+ /** @var Cluster $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ManagedKafkaClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_clusters_sample($formattedParent);
+}
+// [END managedkafka_v1_generated_ManagedKafka_ListClusters_sync]
diff --git a/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/list_consumer_groups.php b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/list_consumer_groups.php
new file mode 100644
index 000000000000..7ab0b78142b1
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/list_consumer_groups.php
@@ -0,0 +1,78 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $managedKafkaClient->listConsumerGroups($request);
+
+ /** @var ConsumerGroup $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ManagedKafkaClient::clusterName('[PROJECT]', '[LOCATION]', '[CLUSTER]');
+
+ list_consumer_groups_sample($formattedParent);
+}
+// [END managedkafka_v1_generated_ManagedKafka_ListConsumerGroups_sync]
diff --git a/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/list_locations.php b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/list_locations.php
new file mode 100644
index 000000000000..c7aec8b4850e
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/list_locations.php
@@ -0,0 +1,62 @@
+listLocations($request);
+
+ /** @var Location $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END managedkafka_v1_generated_ManagedKafka_ListLocations_sync]
diff --git a/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/list_topics.php b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/list_topics.php
new file mode 100644
index 000000000000..90860be6b9db
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/list_topics.php
@@ -0,0 +1,77 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $managedKafkaClient->listTopics($request);
+
+ /** @var Topic $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ManagedKafkaClient::clusterName('[PROJECT]', '[LOCATION]', '[CLUSTER]');
+
+ list_topics_sample($formattedParent);
+}
+// [END managedkafka_v1_generated_ManagedKafka_ListTopics_sync]
diff --git a/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/update_cluster.php b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/update_cluster.php
new file mode 100644
index 000000000000..61e3c38aa419
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/update_cluster.php
@@ -0,0 +1,124 @@
+setSubnet($clusterGcpConfigAccessConfigNetworkConfigsSubnet);
+ $clusterGcpConfigAccessConfigNetworkConfigs = [$networkConfig,];
+ $clusterGcpConfigAccessConfig = (new AccessConfig())
+ ->setNetworkConfigs($clusterGcpConfigAccessConfigNetworkConfigs);
+ $clusterGcpConfig = (new GcpConfig())
+ ->setAccessConfig($clusterGcpConfigAccessConfig);
+ $clusterCapacityConfig = (new CapacityConfig())
+ ->setVcpuCount($clusterCapacityConfigVcpuCount)
+ ->setMemoryBytes($clusterCapacityConfigMemoryBytes);
+ $cluster = (new Cluster())
+ ->setGcpConfig($clusterGcpConfig)
+ ->setCapacityConfig($clusterCapacityConfig);
+ $request = (new UpdateClusterRequest())
+ ->setUpdateMask($updateMask)
+ ->setCluster($cluster);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $managedKafkaClient->updateCluster($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Cluster $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $clusterGcpConfigAccessConfigNetworkConfigsSubnet = '[SUBNET]';
+ $clusterCapacityConfigVcpuCount = 0;
+ $clusterCapacityConfigMemoryBytes = 0;
+
+ update_cluster_sample(
+ $clusterGcpConfigAccessConfigNetworkConfigsSubnet,
+ $clusterCapacityConfigVcpuCount,
+ $clusterCapacityConfigMemoryBytes
+ );
+}
+// [END managedkafka_v1_generated_ManagedKafka_UpdateCluster_sync]
diff --git a/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/update_consumer_group.php b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/update_consumer_group.php
new file mode 100644
index 000000000000..91b8e7b0091f
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/update_consumer_group.php
@@ -0,0 +1,62 @@
+setUpdateMask($updateMask)
+ ->setConsumerGroup($consumerGroup);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ConsumerGroup $response */
+ $response = $managedKafkaClient->updateConsumerGroup($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END managedkafka_v1_generated_ManagedKafka_UpdateConsumerGroup_sync]
diff --git a/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/update_topic.php b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/update_topic.php
new file mode 100644
index 000000000000..cc41bac1056f
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/samples/V1/ManagedKafkaClient/update_topic.php
@@ -0,0 +1,82 @@
+setPartitionCount($topicPartitionCount)
+ ->setReplicationFactor($topicReplicationFactor);
+ $request = (new UpdateTopicRequest())
+ ->setUpdateMask($updateMask)
+ ->setTopic($topic);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Topic $response */
+ $response = $managedKafkaClient->updateTopic($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $topicPartitionCount = 0;
+ $topicReplicationFactor = 0;
+
+ update_topic_sample($topicPartitionCount, $topicReplicationFactor);
+}
+// [END managedkafka_v1_generated_ManagedKafka_UpdateTopic_sync]
diff --git a/owl-bot-staging/ManagedKafka/v1/src/V1/Client/ManagedKafkaClient.php b/owl-bot-staging/ManagedKafka/v1/src/V1/Client/ManagedKafkaClient.php
new file mode 100644
index 000000000000..daeef68cb1a3
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/src/V1/Client/ManagedKafkaClient.php
@@ -0,0 +1,802 @@
+ createClusterAsync(CreateClusterRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createTopicAsync(CreateTopicRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteClusterAsync(DeleteClusterRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteConsumerGroupAsync(DeleteConsumerGroupRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteTopicAsync(DeleteTopicRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getClusterAsync(GetClusterRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getConsumerGroupAsync(GetConsumerGroupRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getTopicAsync(GetTopicRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listClustersAsync(ListClustersRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listConsumerGroupsAsync(ListConsumerGroupsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listTopicsAsync(ListTopicsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateClusterAsync(UpdateClusterRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateConsumerGroupAsync(UpdateConsumerGroupRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateTopicAsync(UpdateTopicRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = [])
+ */
+final class ManagedKafkaClient
+{
+ use GapicClientTrait;
+ use ResourceHelperTrait;
+
+ /** The name of the service. */
+ private const SERVICE_NAME = 'google.cloud.managedkafka.v1.ManagedKafka';
+
+ /**
+ * The default address of the service.
+ *
+ * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead.
+ */
+ private const SERVICE_ADDRESS = 'managedkafka.googleapis.com';
+
+ /** The address template of the service. */
+ private const SERVICE_ADDRESS_TEMPLATE = 'managedkafka.UNIVERSE_DOMAIN';
+
+ /** The default port of the service. */
+ private const DEFAULT_SERVICE_PORT = 443;
+
+ /** The name of the code generator, to be included in the agent header. */
+ private const CODEGEN_NAME = 'gapic';
+
+ /** The default scopes required by the service. */
+ public static $serviceScopes = [
+ 'https://www.googleapis.com/auth/cloud-platform',
+ ];
+
+ private $operationsClient;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/managed_kafka_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/managed_kafka_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/managed_kafka_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/managed_kafka_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Return an OperationsClient object with the same endpoint as $this.
+ *
+ * @return OperationsClient
+ */
+ public function getOperationsClient()
+ {
+ return $this->operationsClient;
+ }
+
+ /**
+ * Resume an existing long running operation that was previously started by a long
+ * running API method. If $methodName is not provided, or does not match a long
+ * running API method, then the operation can still be resumed, but the
+ * OperationResponse object will not deserialize the final response.
+ *
+ * @param string $operationName The name of the long running operation
+ * @param string $methodName The name of the method used to start the operation
+ *
+ * @return OperationResponse
+ */
+ public function resumeOperation($operationName, $methodName = null)
+ {
+ $options = isset($this->descriptors[$methodName]['longRunning']) ? $this->descriptors[$methodName]['longRunning'] : [];
+ $operation = new OperationResponse($operationName, $this->getOperationsClient(), $options);
+ $operation->reload();
+ return $operation;
+ }
+
+ /**
+ * Create the default operation client for the service.
+ *
+ * @param array $options ClientOptions for the client.
+ *
+ * @return OperationsClient
+ */
+ private function createOperationsClient(array $options)
+ {
+ // Unset client-specific configuration options
+ unset($options['serviceName'], $options['clientConfig'], $options['descriptorsConfigPath']);
+
+ if (isset($options['operationsClient'])) {
+ return $options['operationsClient'];
+ }
+
+ return new OperationsClient($options);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a cluster
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $cluster
+ *
+ * @return string The formatted cluster resource.
+ */
+ public static function clusterName(string $project, string $location, string $cluster): string
+ {
+ return self::getPathTemplate('cluster')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'cluster' => $cluster,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * consumer_group resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $cluster
+ * @param string $consumerGroup
+ *
+ * @return string The formatted consumer_group resource.
+ */
+ public static function consumerGroupName(string $project, string $location, string $cluster, string $consumerGroup): string
+ {
+ return self::getPathTemplate('consumerGroup')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'cluster' => $cluster,
+ 'consumer_group' => $consumerGroup,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a crypto_key
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $keyRing
+ * @param string $cryptoKey
+ *
+ * @return string The formatted crypto_key resource.
+ */
+ public static function cryptoKeyName(string $project, string $location, string $keyRing, string $cryptoKey): string
+ {
+ return self::getPathTemplate('cryptoKey')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'key_ring' => $keyRing,
+ 'crypto_key' => $cryptoKey,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a location
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ *
+ * @return string The formatted location resource.
+ */
+ public static function locationName(string $project, string $location): string
+ {
+ return self::getPathTemplate('location')->render([
+ 'project' => $project,
+ 'location' => $location,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a topic
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $cluster
+ * @param string $topic
+ *
+ * @return string The formatted topic resource.
+ */
+ public static function topicName(string $project, string $location, string $cluster, string $topic): string
+ {
+ return self::getPathTemplate('topic')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'cluster' => $cluster,
+ 'topic' => $topic,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - cluster: projects/{project}/locations/{location}/clusters/{cluster}
+ * - consumerGroup: projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumer_group}
+ * - cryptoKey: projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}
+ * - location: projects/{project}/locations/{location}
+ * - topic: projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}
+ *
+ * The optional $template argument can be supplied to specify a particular pattern,
+ * and must match one of the templates listed above. If no $template argument is
+ * provided, or if the $template argument does not match one of the templates
+ * listed, then parseName will check each of the supported templates, and return
+ * the first match.
+ *
+ * @param string $formattedName The formatted name string
+ * @param ?string $template Optional name of template to match
+ *
+ * @return array An associative array from name component IDs to component values.
+ *
+ * @throws ValidationException If $formattedName could not be matched.
+ */
+ public static function parseName(string $formattedName, ?string $template = null): array
+ {
+ return self::parseFormattedName($formattedName, $template);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $options {
+ * Optional. Options for configuring the service API wrapper.
+ *
+ * @type string $apiEndpoint
+ * The address of the API remote host. May optionally include the port, formatted
+ * as ":". Default 'managedkafka.googleapis.com:443'.
+ * @type string|array|FetchAuthTokenInterface|CredentialsWrapper $credentials
+ * The credentials to be used by the client to authorize API calls. This option
+ * accepts either a path to a credentials file, or a decoded credentials file as a
+ * PHP array.
+ * *Advanced usage*: In addition, this option can also accept a pre-constructed
+ * {@see \Google\Auth\FetchAuthTokenInterface} object or
+ * {@see \Google\ApiCore\CredentialsWrapper} object. Note that when one of these
+ * objects are provided, any settings in $credentialsConfig will be ignored.
+ * @type array $credentialsConfig
+ * Options used to configure credentials, including auth token caching, for the
+ * client. For a full list of supporting configuration options, see
+ * {@see \Google\ApiCore\CredentialsWrapper::build()} .
+ * @type bool $disableRetries
+ * Determines whether or not retries defined by the client configuration should be
+ * disabled. Defaults to `false`.
+ * @type string|array $clientConfig
+ * Client method configuration, including retry settings. This option can be either
+ * a path to a JSON file, or a PHP array containing the decoded JSON data. By
+ * default this settings points to the default client config file, which is
+ * provided in the resources folder.
+ * @type string|TransportInterface $transport
+ * The transport used for executing network requests. May be either the string
+ * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system.
+ * *Advanced usage*: Additionally, it is possible to pass in an already
+ * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note
+ * that when this object is provided, any settings in $transportConfig, and any
+ * $apiEndpoint setting, will be ignored.
+ * @type array $transportConfig
+ * Configuration options that will be used to construct the transport. Options for
+ * each supported transport type should be passed in a key for that transport. For
+ * example:
+ * $transportConfig = [
+ * 'grpc' => [...],
+ * 'rest' => [...],
+ * ];
+ * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and
+ * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the
+ * supported options.
+ * @type callable $clientCertSource
+ * A callable which returns the client cert as a string. This can be used to
+ * provide a certificate and private key to the transport layer for mTLS.
+ * @type false|LoggerInterface $logger
+ * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the
+ * 'GOOGLE_SDK_PHP_LOGGING' environment flag
+ * }
+ *
+ * @throws ValidationException
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ $this->operationsClient = $this->createOperationsClient($clientOptions);
+ }
+
+ /** Handles execution of the async variants for each documented method. */
+ public function __call($method, $args)
+ {
+ if (substr($method, -5) !== 'Async') {
+ trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR);
+ }
+
+ array_unshift($args, substr($method, 0, -5));
+ return call_user_func_array([$this, 'startAsyncCall'], $args);
+ }
+
+ /**
+ * Creates a new cluster in a given project and location.
+ *
+ * The async variant is {@see ManagedKafkaClient::createClusterAsync()} .
+ *
+ * @example samples/V1/ManagedKafkaClient/create_cluster.php
+ *
+ * @param CreateClusterRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createCluster(CreateClusterRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateCluster', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a new topic in a given project and location.
+ *
+ * The async variant is {@see ManagedKafkaClient::createTopicAsync()} .
+ *
+ * @example samples/V1/ManagedKafkaClient/create_topic.php
+ *
+ * @param CreateTopicRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Topic
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createTopic(CreateTopicRequest $request, array $callOptions = []): Topic
+ {
+ return $this->startApiCall('CreateTopic', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a single cluster.
+ *
+ * The async variant is {@see ManagedKafkaClient::deleteClusterAsync()} .
+ *
+ * @example samples/V1/ManagedKafkaClient/delete_cluster.php
+ *
+ * @param DeleteClusterRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteCluster(DeleteClusterRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteCluster', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a single consumer group.
+ *
+ * The async variant is {@see ManagedKafkaClient::deleteConsumerGroupAsync()} .
+ *
+ * @example samples/V1/ManagedKafkaClient/delete_consumer_group.php
+ *
+ * @param DeleteConsumerGroupRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteConsumerGroup(DeleteConsumerGroupRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeleteConsumerGroup', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a single topic.
+ *
+ * The async variant is {@see ManagedKafkaClient::deleteTopicAsync()} .
+ *
+ * @example samples/V1/ManagedKafkaClient/delete_topic.php
+ *
+ * @param DeleteTopicRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteTopic(DeleteTopicRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeleteTopic', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Returns the properties of a single cluster.
+ *
+ * The async variant is {@see ManagedKafkaClient::getClusterAsync()} .
+ *
+ * @example samples/V1/ManagedKafkaClient/get_cluster.php
+ *
+ * @param GetClusterRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Cluster
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getCluster(GetClusterRequest $request, array $callOptions = []): Cluster
+ {
+ return $this->startApiCall('GetCluster', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Returns the properties of a single consumer group.
+ *
+ * The async variant is {@see ManagedKafkaClient::getConsumerGroupAsync()} .
+ *
+ * @example samples/V1/ManagedKafkaClient/get_consumer_group.php
+ *
+ * @param GetConsumerGroupRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return ConsumerGroup
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getConsumerGroup(GetConsumerGroupRequest $request, array $callOptions = []): ConsumerGroup
+ {
+ return $this->startApiCall('GetConsumerGroup', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Returns the properties of a single topic.
+ *
+ * The async variant is {@see ManagedKafkaClient::getTopicAsync()} .
+ *
+ * @example samples/V1/ManagedKafkaClient/get_topic.php
+ *
+ * @param GetTopicRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Topic
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getTopic(GetTopicRequest $request, array $callOptions = []): Topic
+ {
+ return $this->startApiCall('GetTopic', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists the clusters in a given project and location.
+ *
+ * The async variant is {@see ManagedKafkaClient::listClustersAsync()} .
+ *
+ * @example samples/V1/ManagedKafkaClient/list_clusters.php
+ *
+ * @param ListClustersRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listClusters(ListClustersRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListClusters', $request, $callOptions);
+ }
+
+ /**
+ * Lists the consumer groups in a given cluster.
+ *
+ * The async variant is {@see ManagedKafkaClient::listConsumerGroupsAsync()} .
+ *
+ * @example samples/V1/ManagedKafkaClient/list_consumer_groups.php
+ *
+ * @param ListConsumerGroupsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listConsumerGroups(ListConsumerGroupsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListConsumerGroups', $request, $callOptions);
+ }
+
+ /**
+ * Lists the topics in a given cluster.
+ *
+ * The async variant is {@see ManagedKafkaClient::listTopicsAsync()} .
+ *
+ * @example samples/V1/ManagedKafkaClient/list_topics.php
+ *
+ * @param ListTopicsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listTopics(ListTopicsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListTopics', $request, $callOptions);
+ }
+
+ /**
+ * Updates the properties of a single cluster.
+ *
+ * The async variant is {@see ManagedKafkaClient::updateClusterAsync()} .
+ *
+ * @example samples/V1/ManagedKafkaClient/update_cluster.php
+ *
+ * @param UpdateClusterRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateCluster(UpdateClusterRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('UpdateCluster', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates the properties of a single consumer group.
+ *
+ * The async variant is {@see ManagedKafkaClient::updateConsumerGroupAsync()} .
+ *
+ * @example samples/V1/ManagedKafkaClient/update_consumer_group.php
+ *
+ * @param UpdateConsumerGroupRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return ConsumerGroup
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateConsumerGroup(UpdateConsumerGroupRequest $request, array $callOptions = []): ConsumerGroup
+ {
+ return $this->startApiCall('UpdateConsumerGroup', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates the properties of a single topic.
+ *
+ * The async variant is {@see ManagedKafkaClient::updateTopicAsync()} .
+ *
+ * @example samples/V1/ManagedKafkaClient/update_topic.php
+ *
+ * @param UpdateTopicRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Topic
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateTopic(UpdateTopicRequest $request, array $callOptions = []): Topic
+ {
+ return $this->startApiCall('UpdateTopic', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * The async variant is {@see ManagedKafkaClient::getLocationAsync()} .
+ *
+ * @example samples/V1/ManagedKafkaClient/get_location.php
+ *
+ * @param GetLocationRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Location
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getLocation(GetLocationRequest $request, array $callOptions = []): Location
+ {
+ return $this->startApiCall('GetLocation', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists information about the supported locations for this service.
+ *
+ * The async variant is {@see ManagedKafkaClient::listLocationsAsync()} .
+ *
+ * @example samples/V1/ManagedKafkaClient/list_locations.php
+ *
+ * @param ListLocationsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListLocations', $request, $callOptions);
+ }
+}
diff --git a/owl-bot-staging/ManagedKafka/v1/src/V1/gapic_metadata.json b/owl-bot-staging/ManagedKafka/v1/src/V1/gapic_metadata.json
new file mode 100644
index 000000000000..52eab10d2dac
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/src/V1/gapic_metadata.json
@@ -0,0 +1,98 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.cloud.managedkafka.v1",
+ "libraryPackage": "Google\\Cloud\\ManagedKafka\\V1",
+ "services": {
+ "ManagedKafka": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "ManagedKafkaGapicClient",
+ "rpcs": {
+ "CreateCluster": {
+ "methods": [
+ "createCluster"
+ ]
+ },
+ "CreateTopic": {
+ "methods": [
+ "createTopic"
+ ]
+ },
+ "DeleteCluster": {
+ "methods": [
+ "deleteCluster"
+ ]
+ },
+ "DeleteConsumerGroup": {
+ "methods": [
+ "deleteConsumerGroup"
+ ]
+ },
+ "DeleteTopic": {
+ "methods": [
+ "deleteTopic"
+ ]
+ },
+ "GetCluster": {
+ "methods": [
+ "getCluster"
+ ]
+ },
+ "GetConsumerGroup": {
+ "methods": [
+ "getConsumerGroup"
+ ]
+ },
+ "GetTopic": {
+ "methods": [
+ "getTopic"
+ ]
+ },
+ "ListClusters": {
+ "methods": [
+ "listClusters"
+ ]
+ },
+ "ListConsumerGroups": {
+ "methods": [
+ "listConsumerGroups"
+ ]
+ },
+ "ListTopics": {
+ "methods": [
+ "listTopics"
+ ]
+ },
+ "UpdateCluster": {
+ "methods": [
+ "updateCluster"
+ ]
+ },
+ "UpdateConsumerGroup": {
+ "methods": [
+ "updateConsumerGroup"
+ ]
+ },
+ "UpdateTopic": {
+ "methods": [
+ "updateTopic"
+ ]
+ },
+ "GetLocation": {
+ "methods": [
+ "getLocation"
+ ]
+ },
+ "ListLocations": {
+ "methods": [
+ "listLocations"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/owl-bot-staging/ManagedKafka/v1/src/V1/resources/managed_kafka_client_config.json b/owl-bot-staging/ManagedKafka/v1/src/V1/resources/managed_kafka_client_config.json
new file mode 100644
index 000000000000..8585444e9db2
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/src/V1/resources/managed_kafka_client_config.json
@@ -0,0 +1,124 @@
+{
+ "interfaces": {
+ "google.cloud.managedkafka.v1.ManagedKafka": {
+ "retry_codes": {
+ "no_retry_codes": [],
+ "retry_policy_1_codes": [
+ "UNAVAILABLE"
+ ],
+ "no_retry_1_codes": []
+ },
+ "retry_params": {
+ "no_retry_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 0,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 0,
+ "total_timeout_millis": 0
+ },
+ "retry_policy_1_params": {
+ "initial_retry_delay_millis": 1000,
+ "retry_delay_multiplier": 1.3,
+ "max_retry_delay_millis": 10000,
+ "initial_rpc_timeout_millis": 60000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 60000,
+ "total_timeout_millis": 60000
+ },
+ "no_retry_1_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 60000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 60000,
+ "total_timeout_millis": 60000
+ }
+ },
+ "methods": {
+ "CreateCluster": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateTopic": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteCluster": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteConsumerGroup": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteTopic": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetCluster": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetConsumerGroup": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetTopic": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListClusters": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListConsumerGroups": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListTopics": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "UpdateCluster": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateConsumerGroup": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateTopic": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetLocation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "ListLocations": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/ManagedKafka/v1/src/V1/resources/managed_kafka_descriptor_config.php b/owl-bot-staging/ManagedKafka/v1/src/V1/resources/managed_kafka_descriptor_config.php
new file mode 100644
index 000000000000..37b43b976d5a
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/src/V1/resources/managed_kafka_descriptor_config.php
@@ -0,0 +1,285 @@
+ [
+ 'google.cloud.managedkafka.v1.ManagedKafka' => [
+ 'CreateCluster' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\ManagedKafka\V1\Cluster',
+ 'metadataReturnType' => '\Google\Cloud\ManagedKafka\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteCluster' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\ManagedKafka\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateCluster' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\ManagedKafka\V1\Cluster',
+ 'metadataReturnType' => '\Google\Cloud\ManagedKafka\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'cluster.name',
+ 'fieldAccessors' => [
+ 'getCluster',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'CreateTopic' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ManagedKafka\V1\Topic',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteConsumerGroup' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteTopic' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetCluster' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ManagedKafka\V1\Cluster',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetConsumerGroup' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ManagedKafka\V1\ConsumerGroup',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetTopic' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ManagedKafka\V1\Topic',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListClusters' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getClusters',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ManagedKafka\V1\ListClustersResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListConsumerGroups' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getConsumerGroups',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ManagedKafka\V1\ListConsumerGroupsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListTopics' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getTopics',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ManagedKafka\V1\ListTopicsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateConsumerGroup' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ManagedKafka\V1\ConsumerGroup',
+ 'headerParams' => [
+ [
+ 'keyName' => 'consumer_group.name',
+ 'fieldAccessors' => [
+ 'getConsumerGroup',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateTopic' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ManagedKafka\V1\Topic',
+ 'headerParams' => [
+ [
+ 'keyName' => 'topic.name',
+ 'fieldAccessors' => [
+ 'getTopic',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetLocation' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Location\Location',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'ListLocations' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getLocations',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Location\ListLocationsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'templateMap' => [
+ 'cluster' => 'projects/{project}/locations/{location}/clusters/{cluster}',
+ 'consumerGroup' => 'projects/{project}/locations/{location}/clusters/{cluster}/consumerGroups/{consumer_group}',
+ 'cryptoKey' => 'projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}',
+ 'location' => 'projects/{project}/locations/{location}',
+ 'topic' => 'projects/{project}/locations/{location}/clusters/{cluster}/topics/{topic}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/ManagedKafka/v1/src/V1/resources/managed_kafka_rest_client_config.php b/owl-bot-staging/ManagedKafka/v1/src/V1/resources/managed_kafka_rest_client_config.php
new file mode 100644
index 000000000000..f6fcea12de47
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/src/V1/resources/managed_kafka_rest_client_config.php
@@ -0,0 +1,277 @@
+ [
+ 'google.cloud.location.Locations' => [
+ 'GetLocation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListLocations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*}/locations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.cloud.managedkafka.v1.ManagedKafka' => [
+ 'CreateCluster' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/clusters',
+ 'body' => 'cluster',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'cluster_id',
+ ],
+ ],
+ 'CreateTopic' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/clusters/*}/topics',
+ 'body' => 'topic',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'topic_id',
+ ],
+ ],
+ 'DeleteCluster' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/clusters/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteConsumerGroup' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/clusters/*/consumerGroups/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteTopic' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/clusters/*/topics/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetCluster' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/clusters/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetConsumerGroup' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/clusters/*/consumerGroups/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetTopic' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/clusters/*/topics/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListClusters' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/clusters',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListConsumerGroups' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/clusters/*}/consumerGroups',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListTopics' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/clusters/*}/topics',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateCluster' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{cluster.name=projects/*/locations/*/clusters/*}',
+ 'body' => 'cluster',
+ 'placeholders' => [
+ 'cluster.name' => [
+ 'getters' => [
+ 'getCluster',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateConsumerGroup' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{consumer_group.name=projects/*/locations/*/clusters/*/consumerGroups/*}',
+ 'body' => 'consumer_group',
+ 'placeholders' => [
+ 'consumer_group.name' => [
+ 'getters' => [
+ 'getConsumerGroup',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateTopic' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{topic.name=projects/*/locations/*/clusters/*/topics/*}',
+ 'body' => 'topic',
+ 'placeholders' => [
+ 'topic.name' => [
+ 'getters' => [
+ 'getTopic',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ ],
+ 'google.longrunning.Operations' => [
+ 'CancelOperation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/operations/*}:cancel',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteOperation' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetOperation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListOperations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*}/operations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/ManagedKafka/v1/tests/Unit/V1/Client/ManagedKafkaClientTest.php b/owl-bot-staging/ManagedKafka/v1/tests/Unit/V1/Client/ManagedKafkaClientTest.php
new file mode 100644
index 000000000000..cf3da605fcf5
--- /dev/null
+++ b/owl-bot-staging/ManagedKafka/v1/tests/Unit/V1/Client/ManagedKafkaClientTest.php
@@ -0,0 +1,1526 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return ManagedKafkaClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new ManagedKafkaClient($options);
+ }
+
+ /** @test */
+ public function createClusterTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createClusterTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $satisfiesPzi = false;
+ $satisfiesPzs = false;
+ $expectedResponse = new Cluster();
+ $expectedResponse->setName($name);
+ $expectedResponse->setSatisfiesPzi($satisfiesPzi);
+ $expectedResponse->setSatisfiesPzs($satisfiesPzs);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createClusterTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $clusterId = 'clusterId240280960';
+ $cluster = new Cluster();
+ $clusterCapacityConfig = new CapacityConfig();
+ $capacityConfigVcpuCount = 1944563327;
+ $clusterCapacityConfig->setVcpuCount($capacityConfigVcpuCount);
+ $capacityConfigMemoryBytes = 743041454;
+ $clusterCapacityConfig->setMemoryBytes($capacityConfigMemoryBytes);
+ $cluster->setCapacityConfig($clusterCapacityConfig);
+ $clusterGcpConfig = new GcpConfig();
+ $gcpConfigAccessConfig = new AccessConfig();
+ $accessConfigNetworkConfigs = [];
+ $gcpConfigAccessConfig->setNetworkConfigs($accessConfigNetworkConfigs);
+ $clusterGcpConfig->setAccessConfig($gcpConfigAccessConfig);
+ $cluster->setGcpConfig($clusterGcpConfig);
+ $request = (new CreateClusterRequest())
+ ->setParent($formattedParent)
+ ->setClusterId($clusterId)
+ ->setCluster($cluster);
+ $response = $gapicClient->createCluster($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedkafka.v1.ManagedKafka/CreateCluster', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getClusterId();
+ $this->assertProtobufEquals($clusterId, $actualValue);
+ $actualValue = $actualApiRequestObject->getCluster();
+ $this->assertProtobufEquals($cluster, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createClusterTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createClusterExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createClusterTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $clusterId = 'clusterId240280960';
+ $cluster = new Cluster();
+ $clusterCapacityConfig = new CapacityConfig();
+ $capacityConfigVcpuCount = 1944563327;
+ $clusterCapacityConfig->setVcpuCount($capacityConfigVcpuCount);
+ $capacityConfigMemoryBytes = 743041454;
+ $clusterCapacityConfig->setMemoryBytes($capacityConfigMemoryBytes);
+ $cluster->setCapacityConfig($clusterCapacityConfig);
+ $clusterGcpConfig = new GcpConfig();
+ $gcpConfigAccessConfig = new AccessConfig();
+ $accessConfigNetworkConfigs = [];
+ $gcpConfigAccessConfig->setNetworkConfigs($accessConfigNetworkConfigs);
+ $clusterGcpConfig->setAccessConfig($gcpConfigAccessConfig);
+ $cluster->setGcpConfig($clusterGcpConfig);
+ $request = (new CreateClusterRequest())
+ ->setParent($formattedParent)
+ ->setClusterId($clusterId)
+ ->setCluster($cluster);
+ $response = $gapicClient->createCluster($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createClusterTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createTopicTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $partitionCount = 1738969222;
+ $replicationFactor = 1434332894;
+ $expectedResponse = new Topic();
+ $expectedResponse->setName($name);
+ $expectedResponse->setPartitionCount($partitionCount);
+ $expectedResponse->setReplicationFactor($replicationFactor);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->clusterName('[PROJECT]', '[LOCATION]', '[CLUSTER]');
+ $topicId = 'topicId-957291989';
+ $topic = new Topic();
+ $topicPartitionCount = 2129663148;
+ $topic->setPartitionCount($topicPartitionCount);
+ $topicReplicationFactor = 1954252084;
+ $topic->setReplicationFactor($topicReplicationFactor);
+ $request = (new CreateTopicRequest())
+ ->setParent($formattedParent)
+ ->setTopicId($topicId)
+ ->setTopic($topic);
+ $response = $gapicClient->createTopic($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedkafka.v1.ManagedKafka/CreateTopic', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getTopicId();
+ $this->assertProtobufEquals($topicId, $actualValue);
+ $actualValue = $actualRequestObject->getTopic();
+ $this->assertProtobufEquals($topic, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createTopicExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->clusterName('[PROJECT]', '[LOCATION]', '[CLUSTER]');
+ $topicId = 'topicId-957291989';
+ $topic = new Topic();
+ $topicPartitionCount = 2129663148;
+ $topic->setPartitionCount($topicPartitionCount);
+ $topicReplicationFactor = 1954252084;
+ $topic->setReplicationFactor($topicReplicationFactor);
+ $request = (new CreateTopicRequest())
+ ->setParent($formattedParent)
+ ->setTopicId($topicId)
+ ->setTopic($topic);
+ try {
+ $gapicClient->createTopic($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteClusterTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteClusterTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteClusterTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->clusterName('[PROJECT]', '[LOCATION]', '[CLUSTER]');
+ $request = (new DeleteClusterRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteCluster($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedkafka.v1.ManagedKafka/DeleteCluster', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteClusterTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteClusterExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteClusterTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->clusterName('[PROJECT]', '[LOCATION]', '[CLUSTER]');
+ $request = (new DeleteClusterRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteCluster($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteClusterTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteConsumerGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->consumerGroupName('[PROJECT]', '[LOCATION]', '[CLUSTER]', '[CONSUMER_GROUP]');
+ $request = (new DeleteConsumerGroupRequest())
+ ->setName($formattedName);
+ $gapicClient->deleteConsumerGroup($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedkafka.v1.ManagedKafka/DeleteConsumerGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteConsumerGroupExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->consumerGroupName('[PROJECT]', '[LOCATION]', '[CLUSTER]', '[CONSUMER_GROUP]');
+ $request = (new DeleteConsumerGroupRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->deleteConsumerGroup($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteTopicTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->topicName('[PROJECT]', '[LOCATION]', '[CLUSTER]', '[TOPIC]');
+ $request = (new DeleteTopicRequest())
+ ->setName($formattedName);
+ $gapicClient->deleteTopic($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedkafka.v1.ManagedKafka/DeleteTopic', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteTopicExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->topicName('[PROJECT]', '[LOCATION]', '[CLUSTER]', '[TOPIC]');
+ $request = (new DeleteTopicRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->deleteTopic($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getClusterTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $satisfiesPzi = false;
+ $satisfiesPzs = false;
+ $expectedResponse = new Cluster();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setSatisfiesPzi($satisfiesPzi);
+ $expectedResponse->setSatisfiesPzs($satisfiesPzs);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->clusterName('[PROJECT]', '[LOCATION]', '[CLUSTER]');
+ $request = (new GetClusterRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getCluster($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedkafka.v1.ManagedKafka/GetCluster', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getClusterExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->clusterName('[PROJECT]', '[LOCATION]', '[CLUSTER]');
+ $request = (new GetClusterRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getCluster($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getConsumerGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $expectedResponse = new ConsumerGroup();
+ $expectedResponse->setName($name2);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->consumerGroupName('[PROJECT]', '[LOCATION]', '[CLUSTER]', '[CONSUMER_GROUP]');
+ $request = (new GetConsumerGroupRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getConsumerGroup($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedkafka.v1.ManagedKafka/GetConsumerGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getConsumerGroupExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->consumerGroupName('[PROJECT]', '[LOCATION]', '[CLUSTER]', '[CONSUMER_GROUP]');
+ $request = (new GetConsumerGroupRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getConsumerGroup($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getTopicTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $partitionCount = 1738969222;
+ $replicationFactor = 1434332894;
+ $expectedResponse = new Topic();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setPartitionCount($partitionCount);
+ $expectedResponse->setReplicationFactor($replicationFactor);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->topicName('[PROJECT]', '[LOCATION]', '[CLUSTER]', '[TOPIC]');
+ $request = (new GetTopicRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getTopic($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedkafka.v1.ManagedKafka/GetTopic', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getTopicExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->topicName('[PROJECT]', '[LOCATION]', '[CLUSTER]', '[TOPIC]');
+ $request = (new GetTopicRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getTopic($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listClustersTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $clustersElement = new Cluster();
+ $clusters = [
+ $clustersElement,
+ ];
+ $expectedResponse = new ListClustersResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setClusters($clusters);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListClustersRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listClusters($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getClusters()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedkafka.v1.ManagedKafka/ListClusters', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listClustersExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListClustersRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listClusters($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listConsumerGroupsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $consumerGroupsElement = new ConsumerGroup();
+ $consumerGroups = [
+ $consumerGroupsElement,
+ ];
+ $expectedResponse = new ListConsumerGroupsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setConsumerGroups($consumerGroups);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->clusterName('[PROJECT]', '[LOCATION]', '[CLUSTER]');
+ $request = (new ListConsumerGroupsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listConsumerGroups($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getConsumerGroups()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedkafka.v1.ManagedKafka/ListConsumerGroups', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listConsumerGroupsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->clusterName('[PROJECT]', '[LOCATION]', '[CLUSTER]');
+ $request = (new ListConsumerGroupsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listConsumerGroups($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listTopicsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $topicsElement = new Topic();
+ $topics = [
+ $topicsElement,
+ ];
+ $expectedResponse = new ListTopicsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setTopics($topics);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->clusterName('[PROJECT]', '[LOCATION]', '[CLUSTER]');
+ $request = (new ListTopicsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listTopics($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getTopics()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedkafka.v1.ManagedKafka/ListTopics', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listTopicsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->clusterName('[PROJECT]', '[LOCATION]', '[CLUSTER]');
+ $request = (new ListTopicsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listTopics($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateClusterTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateClusterTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $satisfiesPzi = false;
+ $satisfiesPzs = false;
+ $expectedResponse = new Cluster();
+ $expectedResponse->setName($name);
+ $expectedResponse->setSatisfiesPzi($satisfiesPzi);
+ $expectedResponse->setSatisfiesPzs($satisfiesPzs);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateClusterTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $cluster = new Cluster();
+ $clusterCapacityConfig = new CapacityConfig();
+ $capacityConfigVcpuCount = 1944563327;
+ $clusterCapacityConfig->setVcpuCount($capacityConfigVcpuCount);
+ $capacityConfigMemoryBytes = 743041454;
+ $clusterCapacityConfig->setMemoryBytes($capacityConfigMemoryBytes);
+ $cluster->setCapacityConfig($clusterCapacityConfig);
+ $clusterGcpConfig = new GcpConfig();
+ $gcpConfigAccessConfig = new AccessConfig();
+ $accessConfigNetworkConfigs = [];
+ $gcpConfigAccessConfig->setNetworkConfigs($accessConfigNetworkConfigs);
+ $clusterGcpConfig->setAccessConfig($gcpConfigAccessConfig);
+ $cluster->setGcpConfig($clusterGcpConfig);
+ $request = (new UpdateClusterRequest())
+ ->setUpdateMask($updateMask)
+ ->setCluster($cluster);
+ $response = $gapicClient->updateCluster($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedkafka.v1.ManagedKafka/UpdateCluster', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getCluster();
+ $this->assertProtobufEquals($cluster, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateClusterTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateClusterExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateClusterTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $updateMask = new FieldMask();
+ $cluster = new Cluster();
+ $clusterCapacityConfig = new CapacityConfig();
+ $capacityConfigVcpuCount = 1944563327;
+ $clusterCapacityConfig->setVcpuCount($capacityConfigVcpuCount);
+ $capacityConfigMemoryBytes = 743041454;
+ $clusterCapacityConfig->setMemoryBytes($capacityConfigMemoryBytes);
+ $cluster->setCapacityConfig($clusterCapacityConfig);
+ $clusterGcpConfig = new GcpConfig();
+ $gcpConfigAccessConfig = new AccessConfig();
+ $accessConfigNetworkConfigs = [];
+ $gcpConfigAccessConfig->setNetworkConfigs($accessConfigNetworkConfigs);
+ $clusterGcpConfig->setAccessConfig($gcpConfigAccessConfig);
+ $cluster->setGcpConfig($clusterGcpConfig);
+ $request = (new UpdateClusterRequest())
+ ->setUpdateMask($updateMask)
+ ->setCluster($cluster);
+ $response = $gapicClient->updateCluster($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateClusterTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateConsumerGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $expectedResponse = new ConsumerGroup();
+ $expectedResponse->setName($name);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $updateMask = new FieldMask();
+ $consumerGroup = new ConsumerGroup();
+ $request = (new UpdateConsumerGroupRequest())
+ ->setUpdateMask($updateMask)
+ ->setConsumerGroup($consumerGroup);
+ $response = $gapicClient->updateConsumerGroup($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedkafka.v1.ManagedKafka/UpdateConsumerGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualRequestObject->getConsumerGroup();
+ $this->assertProtobufEquals($consumerGroup, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateConsumerGroupExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $updateMask = new FieldMask();
+ $consumerGroup = new ConsumerGroup();
+ $request = (new UpdateConsumerGroupRequest())
+ ->setUpdateMask($updateMask)
+ ->setConsumerGroup($consumerGroup);
+ try {
+ $gapicClient->updateConsumerGroup($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateTopicTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $partitionCount = 1738969222;
+ $replicationFactor = 1434332894;
+ $expectedResponse = new Topic();
+ $expectedResponse->setName($name);
+ $expectedResponse->setPartitionCount($partitionCount);
+ $expectedResponse->setReplicationFactor($replicationFactor);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $updateMask = new FieldMask();
+ $topic = new Topic();
+ $topicPartitionCount = 2129663148;
+ $topic->setPartitionCount($topicPartitionCount);
+ $topicReplicationFactor = 1954252084;
+ $topic->setReplicationFactor($topicReplicationFactor);
+ $request = (new UpdateTopicRequest())
+ ->setUpdateMask($updateMask)
+ ->setTopic($topic);
+ $response = $gapicClient->updateTopic($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedkafka.v1.ManagedKafka/UpdateTopic', $actualFuncCall);
+ $actualValue = $actualRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualRequestObject->getTopic();
+ $this->assertProtobufEquals($topic, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateTopicExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $updateMask = new FieldMask();
+ $topic = new Topic();
+ $topicPartitionCount = 2129663148;
+ $topic->setPartitionCount($topicPartitionCount);
+ $topicReplicationFactor = 1954252084;
+ $topic->setReplicationFactor($topicReplicationFactor);
+ $request = (new UpdateTopicRequest())
+ ->setUpdateMask($updateMask)
+ ->setTopic($topic);
+ try {
+ $gapicClient->updateTopic($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getLocationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $locationId = 'locationId552319461';
+ $displayName = 'displayName1615086568';
+ $expectedResponse = new Location();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setLocationId($locationId);
+ $expectedResponse->setDisplayName($displayName);
+ $transport->addResponse($expectedResponse);
+ $request = new GetLocationRequest();
+ $response = $gapicClient->getLocation($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.location.Locations/GetLocation', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getLocationExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new GetLocationRequest();
+ try {
+ $gapicClient->getLocation($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listLocationsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $locationsElement = new Location();
+ $locations = [
+ $locationsElement,
+ ];
+ $expectedResponse = new ListLocationsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setLocations($locations);
+ $transport->addResponse($expectedResponse);
+ $request = new ListLocationsRequest();
+ $response = $gapicClient->listLocations($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getLocations()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.location.Locations/ListLocations', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listLocationsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new ListLocationsRequest();
+ try {
+ $gapicClient->listLocations($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createClusterAsyncTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createClusterTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $satisfiesPzi = false;
+ $satisfiesPzs = false;
+ $expectedResponse = new Cluster();
+ $expectedResponse->setName($name);
+ $expectedResponse->setSatisfiesPzi($satisfiesPzi);
+ $expectedResponse->setSatisfiesPzs($satisfiesPzs);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createClusterTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $clusterId = 'clusterId240280960';
+ $cluster = new Cluster();
+ $clusterCapacityConfig = new CapacityConfig();
+ $capacityConfigVcpuCount = 1944563327;
+ $clusterCapacityConfig->setVcpuCount($capacityConfigVcpuCount);
+ $capacityConfigMemoryBytes = 743041454;
+ $clusterCapacityConfig->setMemoryBytes($capacityConfigMemoryBytes);
+ $cluster->setCapacityConfig($clusterCapacityConfig);
+ $clusterGcpConfig = new GcpConfig();
+ $gcpConfigAccessConfig = new AccessConfig();
+ $accessConfigNetworkConfigs = [];
+ $gcpConfigAccessConfig->setNetworkConfigs($accessConfigNetworkConfigs);
+ $clusterGcpConfig->setAccessConfig($gcpConfigAccessConfig);
+ $cluster->setGcpConfig($clusterGcpConfig);
+ $request = (new CreateClusterRequest())
+ ->setParent($formattedParent)
+ ->setClusterId($clusterId)
+ ->setCluster($cluster);
+ $response = $gapicClient->createClusterAsync($request)->wait();
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.managedkafka.v1.ManagedKafka/CreateCluster', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getClusterId();
+ $this->assertProtobufEquals($clusterId, $actualValue);
+ $actualValue = $actualApiRequestObject->getCluster();
+ $this->assertProtobufEquals($cluster, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createClusterTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/GPBMetadata/Google/Maps/Fleetengine/Delivery/V1/Common.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/GPBMetadata/Google/Maps/Fleetengine/Delivery/V1/Common.php
new file mode 100644
index 000000000000..6706e838d022
Binary files /dev/null and b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/GPBMetadata/Google/Maps/Fleetengine/Delivery/V1/Common.php differ
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/GPBMetadata/Google/Maps/Fleetengine/Delivery/V1/DeliveryApi.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/GPBMetadata/Google/Maps/Fleetengine/Delivery/V1/DeliveryApi.php
new file mode 100644
index 000000000000..daae42f83879
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/GPBMetadata/Google/Maps/Fleetengine/Delivery/V1/DeliveryApi.php
@@ -0,0 +1,123 @@
+internalAddGeneratedFile(
+ '
+Ú,
+6google/maps/fleetengine/delivery/v1/delivery_api.protomaps.fleetengine.delivery.v1google/api/client.protogoogle/api/field_behavior.protogoogle/api/resource.protogoogle/api/routing.protogoogle/geo/type/viewport.proto;google/maps/fleetengine/delivery/v1/delivery_vehicles.proto0google/maps/fleetengine/delivery/v1/header.protointernalAddGeneratedFile(
+ '
+¸
+maps.fleetengine.delivery.v1.BatchCreateTasksRequest
+ */
+class BatchCreateTasksRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The standard Delivery API request header.
+ * Note: If you set this field, then the header field in the
+ * `CreateTaskRequest` messages must either be empty, or it must match this
+ * field.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $header = null;
+ /**
+ * Required. The parent resource shared by all tasks. This value must be in
+ * the format `providers/{provider}`. The `provider` must be the Google Cloud
+ * Project ID. For example, `sample-cloud-project`. The parent field in the
+ * `CreateTaskRequest` messages must either be empty, or it must match this
+ * field.
+ *
+ * Generated from protobuf field string parent = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The request message that specifies the resources to create.
+ * Note: You can create a maximum of 500 tasks in a batch.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.CreateTaskRequest requests = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $requests;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $header
+ * Optional. The standard Delivery API request header.
+ * Note: If you set this field, then the header field in the
+ * `CreateTaskRequest` messages must either be empty, or it must match this
+ * field.
+ * @type string $parent
+ * Required. The parent resource shared by all tasks. This value must be in
+ * the format `providers/{provider}`. The `provider` must be the Google Cloud
+ * Project ID. For example, `sample-cloud-project`. The parent field in the
+ * `CreateTaskRequest` messages must either be empty, or it must match this
+ * field.
+ * @type array<\Google\Maps\FleetEngine\Delivery\V1\CreateTaskRequest>|\Google\Protobuf\Internal\RepeatedField $requests
+ * Required. The request message that specifies the resources to create.
+ * Note: You can create a maximum of 500 tasks in a batch.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryApi::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ * Note: If you set this field, then the header field in the
+ * `CreateTaskRequest` messages must either be empty, or it must match this
+ * field.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader|null
+ */
+ public function getHeader()
+ {
+ return $this->header;
+ }
+
+ public function hasHeader()
+ {
+ return isset($this->header);
+ }
+
+ public function clearHeader()
+ {
+ unset($this->header);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ * Note: If you set this field, then the header field in the
+ * `CreateTaskRequest` messages must either be empty, or it must match this
+ * field.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $var
+ * @return $this
+ */
+ public function setHeader($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader::class);
+ $this->header = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The parent resource shared by all tasks. This value must be in
+ * the format `providers/{provider}`. The `provider` must be the Google Cloud
+ * Project ID. For example, `sample-cloud-project`. The parent field in the
+ * `CreateTaskRequest` messages must either be empty, or it must match this
+ * field.
+ *
+ * Generated from protobuf field string parent = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The parent resource shared by all tasks. This value must be in
+ * the format `providers/{provider}`. The `provider` must be the Google Cloud
+ * Project ID. For example, `sample-cloud-project`. The parent field in the
+ * `CreateTaskRequest` messages must either be empty, or it must match this
+ * field.
+ *
+ * Generated from protobuf field string parent = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The request message that specifies the resources to create.
+ * Note: You can create a maximum of 500 tasks in a batch.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.CreateTaskRequest requests = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRequests()
+ {
+ return $this->requests;
+ }
+
+ /**
+ * Required. The request message that specifies the resources to create.
+ * Note: You can create a maximum of 500 tasks in a batch.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.CreateTaskRequest requests = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param array<\Google\Maps\FleetEngine\Delivery\V1\CreateTaskRequest>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRequests($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\FleetEngine\Delivery\V1\CreateTaskRequest::class);
+ $this->requests = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/BatchCreateTasksResponse.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/BatchCreateTasksResponse.php
new file mode 100644
index 000000000000..2f87fdd9b497
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/BatchCreateTasksResponse.php
@@ -0,0 +1,67 @@
+maps.fleetengine.delivery.v1.BatchCreateTasksResponse
+ */
+class BatchCreateTasksResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The created Tasks.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.Task tasks = 1;
+ */
+ private $tasks;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Maps\FleetEngine\Delivery\V1\Task>|\Google\Protobuf\Internal\RepeatedField $tasks
+ * The created Tasks.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryApi::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The created Tasks.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.Task tasks = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTasks()
+ {
+ return $this->tasks;
+ }
+
+ /**
+ * The created Tasks.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.Task tasks = 1;
+ * @param array<\Google\Maps\FleetEngine\Delivery\V1\Task>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTasks($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\FleetEngine\Delivery\V1\Task::class);
+ $this->tasks = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/CreateDeliveryVehicleRequest.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/CreateDeliveryVehicleRequest.php
new file mode 100644
index 000000000000..4af64a0a5ce4
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/CreateDeliveryVehicleRequest.php
@@ -0,0 +1,279 @@
+maps.fleetengine.delivery.v1.CreateDeliveryVehicleRequest
+ */
+class CreateDeliveryVehicleRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $header = null;
+ /**
+ * Required. Must be in the format `providers/{provider}`. The provider must
+ * be the Google Cloud Project ID. For example, `sample-cloud-project`.
+ *
+ * Generated from protobuf field string parent = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $parent = '';
+ /**
+ * Required. The Delivery Vehicle ID must be unique and subject to the
+ * following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string delivery_vehicle_id = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $delivery_vehicle_id = '';
+ /**
+ * Required. The `DeliveryVehicle` entity to create. When creating a new
+ * delivery vehicle, you may set the following optional fields:
+ * * type
+ * * last_location
+ * * attributes
+ * Note: The DeliveryVehicle's `name` field is ignored. All other
+ * DeliveryVehicle fields must not be set; otherwise, an error is returned.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicle delivery_vehicle = 5 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $delivery_vehicle = null;
+
+ /**
+ * @param string $parent Required. Must be in the format `providers/{provider}`. The provider must
+ * be the Google Cloud Project ID. For example, `sample-cloud-project`.
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle $deliveryVehicle Required. The `DeliveryVehicle` entity to create. When creating a new
+ * delivery vehicle, you may set the following optional fields:
+ *
+ * * type
+ * * last_location
+ * * attributes
+ *
+ * Note: The DeliveryVehicle's `name` field is ignored. All other
+ * DeliveryVehicle fields must not be set; otherwise, an error is returned.
+ * @param string $deliveryVehicleId Required. The Delivery Vehicle ID must be unique and subject to the
+ * following restrictions:
+ *
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * @return \Google\Maps\FleetEngine\Delivery\V1\CreateDeliveryVehicleRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle $deliveryVehicle, string $deliveryVehicleId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setDeliveryVehicle($deliveryVehicle)
+ ->setDeliveryVehicleId($deliveryVehicleId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $header
+ * Optional. The standard Delivery API request header.
+ * @type string $parent
+ * Required. Must be in the format `providers/{provider}`. The provider must
+ * be the Google Cloud Project ID. For example, `sample-cloud-project`.
+ * @type string $delivery_vehicle_id
+ * Required. The Delivery Vehicle ID must be unique and subject to the
+ * following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle $delivery_vehicle
+ * Required. The `DeliveryVehicle` entity to create. When creating a new
+ * delivery vehicle, you may set the following optional fields:
+ * * type
+ * * last_location
+ * * attributes
+ * Note: The DeliveryVehicle's `name` field is ignored. All other
+ * DeliveryVehicle fields must not be set; otherwise, an error is returned.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryApi::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader|null
+ */
+ public function getHeader()
+ {
+ return $this->header;
+ }
+
+ public function hasHeader()
+ {
+ return isset($this->header);
+ }
+
+ public function clearHeader()
+ {
+ unset($this->header);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $var
+ * @return $this
+ */
+ public function setHeader($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader::class);
+ $this->header = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Must be in the format `providers/{provider}`. The provider must
+ * be the Google Cloud Project ID. For example, `sample-cloud-project`.
+ *
+ * Generated from protobuf field string parent = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Must be in the format `providers/{provider}`. The provider must
+ * be the Google Cloud Project ID. For example, `sample-cloud-project`.
+ *
+ * Generated from protobuf field string parent = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The Delivery Vehicle ID must be unique and subject to the
+ * following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string delivery_vehicle_id = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDeliveryVehicleId()
+ {
+ return $this->delivery_vehicle_id;
+ }
+
+ /**
+ * Required. The Delivery Vehicle ID must be unique and subject to the
+ * following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string delivery_vehicle_id = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDeliveryVehicleId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->delivery_vehicle_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The `DeliveryVehicle` entity to create. When creating a new
+ * delivery vehicle, you may set the following optional fields:
+ * * type
+ * * last_location
+ * * attributes
+ * Note: The DeliveryVehicle's `name` field is ignored. All other
+ * DeliveryVehicle fields must not be set; otherwise, an error is returned.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicle delivery_vehicle = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle|null
+ */
+ public function getDeliveryVehicle()
+ {
+ return $this->delivery_vehicle;
+ }
+
+ public function hasDeliveryVehicle()
+ {
+ return isset($this->delivery_vehicle);
+ }
+
+ public function clearDeliveryVehicle()
+ {
+ unset($this->delivery_vehicle);
+ }
+
+ /**
+ * Required. The `DeliveryVehicle` entity to create. When creating a new
+ * delivery vehicle, you may set the following optional fields:
+ * * type
+ * * last_location
+ * * attributes
+ * Note: The DeliveryVehicle's `name` field is ignored. All other
+ * DeliveryVehicle fields must not be set; otherwise, an error is returned.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicle delivery_vehicle = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle $var
+ * @return $this
+ */
+ public function setDeliveryVehicle($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle::class);
+ $this->delivery_vehicle = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/CreateTaskRequest.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/CreateTaskRequest.php
new file mode 100644
index 000000000000..a46f2f910ca5
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/CreateTaskRequest.php
@@ -0,0 +1,304 @@
+maps.fleetengine.delivery.v1.CreateTaskRequest
+ */
+class CreateTaskRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $header = null;
+ /**
+ * Required. Must be in the format `providers/{provider}`. The `provider` must
+ * be the Google Cloud Project ID. For example, `sample-cloud-project`.
+ *
+ * Generated from protobuf field string parent = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $parent = '';
+ /**
+ * Required. The Task ID must be unique, but it should be not a shipment
+ * tracking ID. To store a shipment tracking ID, use the `tracking_id` field.
+ * Note that multiple tasks can have the same `tracking_id`. Task IDs are
+ * subject to the following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string task_id = 5 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $task_id = '';
+ /**
+ * Required. The Task entity to create.
+ * When creating a Task, the following fields are required:
+ * * `type`
+ * * `state` (must be set to `OPEN`)
+ * * `tracking_id` (must not be set for `UNAVAILABLE` or `SCHEDULED_STOP`
+ * tasks, but required for all other task types)
+ * * `planned_location` (optional for `UNAVAILABLE` tasks)
+ * * `task_duration`
+ * Note: The Task's `name` field is ignored. All other Task fields must not be
+ * set; otherwise, an error is returned.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task task = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $task = null;
+
+ /**
+ * @param string $parent Required. Must be in the format `providers/{provider}`. The `provider` must
+ * be the Google Cloud Project ID. For example, `sample-cloud-project`.
+ * @param \Google\Maps\FleetEngine\Delivery\V1\Task $task Required. The Task entity to create.
+ * When creating a Task, the following fields are required:
+ *
+ * * `type`
+ * * `state` (must be set to `OPEN`)
+ * * `tracking_id` (must not be set for `UNAVAILABLE` or `SCHEDULED_STOP`
+ * tasks, but required for all other task types)
+ * * `planned_location` (optional for `UNAVAILABLE` tasks)
+ * * `task_duration`
+ *
+ * Note: The Task's `name` field is ignored. All other Task fields must not be
+ * set; otherwise, an error is returned.
+ * @param string $taskId Required. The Task ID must be unique, but it should be not a shipment
+ * tracking ID. To store a shipment tracking ID, use the `tracking_id` field.
+ * Note that multiple tasks can have the same `tracking_id`. Task IDs are
+ * subject to the following restrictions:
+ *
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * @return \Google\Maps\FleetEngine\Delivery\V1\CreateTaskRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Maps\FleetEngine\Delivery\V1\Task $task, string $taskId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setTask($task)
+ ->setTaskId($taskId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $header
+ * Optional. The standard Delivery API request header.
+ * @type string $parent
+ * Required. Must be in the format `providers/{provider}`. The `provider` must
+ * be the Google Cloud Project ID. For example, `sample-cloud-project`.
+ * @type string $task_id
+ * Required. The Task ID must be unique, but it should be not a shipment
+ * tracking ID. To store a shipment tracking ID, use the `tracking_id` field.
+ * Note that multiple tasks can have the same `tracking_id`. Task IDs are
+ * subject to the following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\Task $task
+ * Required. The Task entity to create.
+ * When creating a Task, the following fields are required:
+ * * `type`
+ * * `state` (must be set to `OPEN`)
+ * * `tracking_id` (must not be set for `UNAVAILABLE` or `SCHEDULED_STOP`
+ * tasks, but required for all other task types)
+ * * `planned_location` (optional for `UNAVAILABLE` tasks)
+ * * `task_duration`
+ * Note: The Task's `name` field is ignored. All other Task fields must not be
+ * set; otherwise, an error is returned.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryApi::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader|null
+ */
+ public function getHeader()
+ {
+ return $this->header;
+ }
+
+ public function hasHeader()
+ {
+ return isset($this->header);
+ }
+
+ public function clearHeader()
+ {
+ unset($this->header);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $var
+ * @return $this
+ */
+ public function setHeader($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader::class);
+ $this->header = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Must be in the format `providers/{provider}`. The `provider` must
+ * be the Google Cloud Project ID. For example, `sample-cloud-project`.
+ *
+ * Generated from protobuf field string parent = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Must be in the format `providers/{provider}`. The `provider` must
+ * be the Google Cloud Project ID. For example, `sample-cloud-project`.
+ *
+ * Generated from protobuf field string parent = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The Task ID must be unique, but it should be not a shipment
+ * tracking ID. To store a shipment tracking ID, use the `tracking_id` field.
+ * Note that multiple tasks can have the same `tracking_id`. Task IDs are
+ * subject to the following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string task_id = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getTaskId()
+ {
+ return $this->task_id;
+ }
+
+ /**
+ * Required. The Task ID must be unique, but it should be not a shipment
+ * tracking ID. To store a shipment tracking ID, use the `tracking_id` field.
+ * Note that multiple tasks can have the same `tracking_id`. Task IDs are
+ * subject to the following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string task_id = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setTaskId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->task_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The Task entity to create.
+ * When creating a Task, the following fields are required:
+ * * `type`
+ * * `state` (must be set to `OPEN`)
+ * * `tracking_id` (must not be set for `UNAVAILABLE` or `SCHEDULED_STOP`
+ * tasks, but required for all other task types)
+ * * `planned_location` (optional for `UNAVAILABLE` tasks)
+ * * `task_duration`
+ * Note: The Task's `name` field is ignored. All other Task fields must not be
+ * set; otherwise, an error is returned.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task task = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\Task|null
+ */
+ public function getTask()
+ {
+ return $this->task;
+ }
+
+ public function hasTask()
+ {
+ return isset($this->task);
+ }
+
+ public function clearTask()
+ {
+ unset($this->task);
+ }
+
+ /**
+ * Required. The Task entity to create.
+ * When creating a Task, the following fields are required:
+ * * `type`
+ * * `state` (must be set to `OPEN`)
+ * * `tracking_id` (must not be set for `UNAVAILABLE` or `SCHEDULED_STOP`
+ * tasks, but required for all other task types)
+ * * `planned_location` (optional for `UNAVAILABLE` tasks)
+ * * `task_duration`
+ * Note: The Task's `name` field is ignored. All other Task fields must not be
+ * set; otherwise, an error is returned.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task task = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\Task $var
+ * @return $this
+ */
+ public function setTask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\Task::class);
+ $this->task = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryRequestHeader.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryRequestHeader.php
new file mode 100644
index 000000000000..99c677f30314
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryRequestHeader.php
@@ -0,0 +1,493 @@
+maps.fleetengine.delivery.v1.DeliveryRequestHeader
+ */
+class DeliveryRequestHeader extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The BCP-47 language code, such as en-US or sr-Latn. For more information,
+ * see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. If none
+ * is specified, the response may be in any language, with a preference for
+ * English if such a name exists. Field value example: `en-US`.
+ *
+ * Generated from protobuf field string language_code = 1;
+ */
+ protected $language_code = '';
+ /**
+ * Required. CLDR region code of the region where the request originates.
+ * Field value example: `US`.
+ *
+ * Generated from protobuf field string region_code = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $region_code = '';
+ /**
+ * Version of the calling SDK, if applicable.
+ * The version format is "major.minor.patch", example: `1.1.2`.
+ *
+ * Generated from protobuf field string sdk_version = 3;
+ */
+ protected $sdk_version = '';
+ /**
+ * Version of the operating system on which the calling SDK is running.
+ * Field value examples: `4.4.1`, `12.1`.
+ *
+ * Generated from protobuf field string os_version = 4;
+ */
+ protected $os_version = '';
+ /**
+ * Model of the device on which the calling SDK is running.
+ * Field value examples: `iPhone12,1`, `SM-G920F`.
+ *
+ * Generated from protobuf field string device_model = 5;
+ */
+ protected $device_model = '';
+ /**
+ * The type of SDK sending the request.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader.SdkType sdk_type = 6;
+ */
+ protected $sdk_type = 0;
+ /**
+ * Version of the MapSDK which the calling SDK depends on, if applicable.
+ * The version format is "major.minor.patch", example: `5.2.1`.
+ *
+ * Generated from protobuf field string maps_sdk_version = 7;
+ */
+ protected $maps_sdk_version = '';
+ /**
+ * Version of the NavSDK which the calling SDK depends on, if applicable.
+ * The version format is "major.minor.patch", example: `2.1.0`.
+ *
+ * Generated from protobuf field string nav_sdk_version = 8;
+ */
+ protected $nav_sdk_version = '';
+ /**
+ * Platform of the calling SDK.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader.Platform platform = 9;
+ */
+ protected $platform = 0;
+ /**
+ * Manufacturer of the Android device from the calling SDK, only applicable
+ * for the Android SDKs.
+ * Field value example: `Samsung`.
+ *
+ * Generated from protobuf field string manufacturer = 10;
+ */
+ protected $manufacturer = '';
+ /**
+ * Android API level of the calling SDK, only applicable for the Android SDKs.
+ * Field value example: `23`.
+ *
+ * Generated from protobuf field int32 android_api_level = 11;
+ */
+ protected $android_api_level = 0;
+ /**
+ * Optional ID that can be provided for logging purposes in order to identify
+ * the request.
+ *
+ * Generated from protobuf field string trace_id = 12;
+ */
+ protected $trace_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $language_code
+ * The BCP-47 language code, such as en-US or sr-Latn. For more information,
+ * see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. If none
+ * is specified, the response may be in any language, with a preference for
+ * English if such a name exists. Field value example: `en-US`.
+ * @type string $region_code
+ * Required. CLDR region code of the region where the request originates.
+ * Field value example: `US`.
+ * @type string $sdk_version
+ * Version of the calling SDK, if applicable.
+ * The version format is "major.minor.patch", example: `1.1.2`.
+ * @type string $os_version
+ * Version of the operating system on which the calling SDK is running.
+ * Field value examples: `4.4.1`, `12.1`.
+ * @type string $device_model
+ * Model of the device on which the calling SDK is running.
+ * Field value examples: `iPhone12,1`, `SM-G920F`.
+ * @type int $sdk_type
+ * The type of SDK sending the request.
+ * @type string $maps_sdk_version
+ * Version of the MapSDK which the calling SDK depends on, if applicable.
+ * The version format is "major.minor.patch", example: `5.2.1`.
+ * @type string $nav_sdk_version
+ * Version of the NavSDK which the calling SDK depends on, if applicable.
+ * The version format is "major.minor.patch", example: `2.1.0`.
+ * @type int $platform
+ * Platform of the calling SDK.
+ * @type string $manufacturer
+ * Manufacturer of the Android device from the calling SDK, only applicable
+ * for the Android SDKs.
+ * Field value example: `Samsung`.
+ * @type int $android_api_level
+ * Android API level of the calling SDK, only applicable for the Android SDKs.
+ * Field value example: `23`.
+ * @type string $trace_id
+ * Optional ID that can be provided for logging purposes in order to identify
+ * the request.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\Header::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The BCP-47 language code, such as en-US or sr-Latn. For more information,
+ * see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. If none
+ * is specified, the response may be in any language, with a preference for
+ * English if such a name exists. Field value example: `en-US`.
+ *
+ * Generated from protobuf field string language_code = 1;
+ * @return string
+ */
+ public function getLanguageCode()
+ {
+ return $this->language_code;
+ }
+
+ /**
+ * The BCP-47 language code, such as en-US or sr-Latn. For more information,
+ * see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. If none
+ * is specified, the response may be in any language, with a preference for
+ * English if such a name exists. Field value example: `en-US`.
+ *
+ * Generated from protobuf field string language_code = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setLanguageCode($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->language_code = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. CLDR region code of the region where the request originates.
+ * Field value example: `US`.
+ *
+ * Generated from protobuf field string region_code = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getRegionCode()
+ {
+ return $this->region_code;
+ }
+
+ /**
+ * Required. CLDR region code of the region where the request originates.
+ * Field value example: `US`.
+ *
+ * Generated from protobuf field string region_code = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setRegionCode($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->region_code = $var;
+
+ return $this;
+ }
+
+ /**
+ * Version of the calling SDK, if applicable.
+ * The version format is "major.minor.patch", example: `1.1.2`.
+ *
+ * Generated from protobuf field string sdk_version = 3;
+ * @return string
+ */
+ public function getSdkVersion()
+ {
+ return $this->sdk_version;
+ }
+
+ /**
+ * Version of the calling SDK, if applicable.
+ * The version format is "major.minor.patch", example: `1.1.2`.
+ *
+ * Generated from protobuf field string sdk_version = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setSdkVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->sdk_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Version of the operating system on which the calling SDK is running.
+ * Field value examples: `4.4.1`, `12.1`.
+ *
+ * Generated from protobuf field string os_version = 4;
+ * @return string
+ */
+ public function getOsVersion()
+ {
+ return $this->os_version;
+ }
+
+ /**
+ * Version of the operating system on which the calling SDK is running.
+ * Field value examples: `4.4.1`, `12.1`.
+ *
+ * Generated from protobuf field string os_version = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setOsVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->os_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Model of the device on which the calling SDK is running.
+ * Field value examples: `iPhone12,1`, `SM-G920F`.
+ *
+ * Generated from protobuf field string device_model = 5;
+ * @return string
+ */
+ public function getDeviceModel()
+ {
+ return $this->device_model;
+ }
+
+ /**
+ * Model of the device on which the calling SDK is running.
+ * Field value examples: `iPhone12,1`, `SM-G920F`.
+ *
+ * Generated from protobuf field string device_model = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setDeviceModel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->device_model = $var;
+
+ return $this;
+ }
+
+ /**
+ * The type of SDK sending the request.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader.SdkType sdk_type = 6;
+ * @return int
+ */
+ public function getSdkType()
+ {
+ return $this->sdk_type;
+ }
+
+ /**
+ * The type of SDK sending the request.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader.SdkType sdk_type = 6;
+ * @param int $var
+ * @return $this
+ */
+ public function setSdkType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader\SdkType::class);
+ $this->sdk_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Version of the MapSDK which the calling SDK depends on, if applicable.
+ * The version format is "major.minor.patch", example: `5.2.1`.
+ *
+ * Generated from protobuf field string maps_sdk_version = 7;
+ * @return string
+ */
+ public function getMapsSdkVersion()
+ {
+ return $this->maps_sdk_version;
+ }
+
+ /**
+ * Version of the MapSDK which the calling SDK depends on, if applicable.
+ * The version format is "major.minor.patch", example: `5.2.1`.
+ *
+ * Generated from protobuf field string maps_sdk_version = 7;
+ * @param string $var
+ * @return $this
+ */
+ public function setMapsSdkVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->maps_sdk_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Version of the NavSDK which the calling SDK depends on, if applicable.
+ * The version format is "major.minor.patch", example: `2.1.0`.
+ *
+ * Generated from protobuf field string nav_sdk_version = 8;
+ * @return string
+ */
+ public function getNavSdkVersion()
+ {
+ return $this->nav_sdk_version;
+ }
+
+ /**
+ * Version of the NavSDK which the calling SDK depends on, if applicable.
+ * The version format is "major.minor.patch", example: `2.1.0`.
+ *
+ * Generated from protobuf field string nav_sdk_version = 8;
+ * @param string $var
+ * @return $this
+ */
+ public function setNavSdkVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->nav_sdk_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Platform of the calling SDK.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader.Platform platform = 9;
+ * @return int
+ */
+ public function getPlatform()
+ {
+ return $this->platform;
+ }
+
+ /**
+ * Platform of the calling SDK.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader.Platform platform = 9;
+ * @param int $var
+ * @return $this
+ */
+ public function setPlatform($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader\Platform::class);
+ $this->platform = $var;
+
+ return $this;
+ }
+
+ /**
+ * Manufacturer of the Android device from the calling SDK, only applicable
+ * for the Android SDKs.
+ * Field value example: `Samsung`.
+ *
+ * Generated from protobuf field string manufacturer = 10;
+ * @return string
+ */
+ public function getManufacturer()
+ {
+ return $this->manufacturer;
+ }
+
+ /**
+ * Manufacturer of the Android device from the calling SDK, only applicable
+ * for the Android SDKs.
+ * Field value example: `Samsung`.
+ *
+ * Generated from protobuf field string manufacturer = 10;
+ * @param string $var
+ * @return $this
+ */
+ public function setManufacturer($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->manufacturer = $var;
+
+ return $this;
+ }
+
+ /**
+ * Android API level of the calling SDK, only applicable for the Android SDKs.
+ * Field value example: `23`.
+ *
+ * Generated from protobuf field int32 android_api_level = 11;
+ * @return int
+ */
+ public function getAndroidApiLevel()
+ {
+ return $this->android_api_level;
+ }
+
+ /**
+ * Android API level of the calling SDK, only applicable for the Android SDKs.
+ * Field value example: `23`.
+ *
+ * Generated from protobuf field int32 android_api_level = 11;
+ * @param int $var
+ * @return $this
+ */
+ public function setAndroidApiLevel($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->android_api_level = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional ID that can be provided for logging purposes in order to identify
+ * the request.
+ *
+ * Generated from protobuf field string trace_id = 12;
+ * @return string
+ */
+ public function getTraceId()
+ {
+ return $this->trace_id;
+ }
+
+ /**
+ * Optional ID that can be provided for logging purposes in order to identify
+ * the request.
+ *
+ * Generated from protobuf field string trace_id = 12;
+ * @param string $var
+ * @return $this
+ */
+ public function setTraceId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->trace_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryRequestHeader/Platform.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryRequestHeader/Platform.php
new file mode 100644
index 000000000000..765859442242
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryRequestHeader/Platform.php
@@ -0,0 +1,71 @@
+maps.fleetengine.delivery.v1.DeliveryRequestHeader.Platform
+ */
+class Platform
+{
+ /**
+ * The default value. This value is used if the platform is omitted.
+ *
+ * Generated from protobuf enum PLATFORM_UNSPECIFIED = 0;
+ */
+ const PLATFORM_UNSPECIFIED = 0;
+ /**
+ * The request is coming from Android.
+ *
+ * Generated from protobuf enum ANDROID = 1;
+ */
+ const ANDROID = 1;
+ /**
+ * The request is coming from iOS.
+ *
+ * Generated from protobuf enum IOS = 2;
+ */
+ const IOS = 2;
+ /**
+ * The request is coming from the web.
+ *
+ * Generated from protobuf enum WEB = 3;
+ */
+ const WEB = 3;
+
+ private static $valueToName = [
+ self::PLATFORM_UNSPECIFIED => 'PLATFORM_UNSPECIFIED',
+ self::ANDROID => 'ANDROID',
+ self::IOS => 'IOS',
+ self::WEB => 'WEB',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Platform::class, \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader_Platform::class);
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryRequestHeader/SdkType.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryRequestHeader/SdkType.php
new file mode 100644
index 000000000000..1c4eb571244c
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryRequestHeader/SdkType.php
@@ -0,0 +1,71 @@
+maps.fleetengine.delivery.v1.DeliveryRequestHeader.SdkType
+ */
+class SdkType
+{
+ /**
+ * The default value. This value is used if the `sdk_type` is omitted.
+ *
+ * Generated from protobuf enum SDK_TYPE_UNSPECIFIED = 0;
+ */
+ const SDK_TYPE_UNSPECIFIED = 0;
+ /**
+ * The calling SDK is Consumer.
+ *
+ * Generated from protobuf enum CONSUMER = 1;
+ */
+ const CONSUMER = 1;
+ /**
+ * The calling SDK is Driver.
+ *
+ * Generated from protobuf enum DRIVER = 2;
+ */
+ const DRIVER = 2;
+ /**
+ * The calling SDK is JavaScript.
+ *
+ * Generated from protobuf enum JAVASCRIPT = 3;
+ */
+ const JAVASCRIPT = 3;
+
+ private static $valueToName = [
+ self::SDK_TYPE_UNSPECIFIED => 'SDK_TYPE_UNSPECIFIED',
+ self::CONSUMER => 'CONSUMER',
+ self::DRIVER => 'DRIVER',
+ self::JAVASCRIPT => 'JAVASCRIPT',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(SdkType::class, \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader_SdkType::class);
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicle.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicle.php
new file mode 100644
index 000000000000..30bf0c4151e0
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicle.php
@@ -0,0 +1,671 @@
+maps.fleetengine.delivery.v1.DeliveryVehicle
+ */
+class DeliveryVehicle extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The unique name of this Delivery Vehicle.
+ * The format is `providers/{provider}/deliveryVehicles/{vehicle}`.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * The last reported location of the Delivery Vehicle.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocation last_location = 2;
+ */
+ protected $last_location = null;
+ /**
+ * The Delivery Vehicle's navigation status.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleNavigationStatus navigation_status = 3;
+ */
+ protected $navigation_status = 0;
+ /**
+ * The encoded polyline specifying the route that the navigation recommends
+ * taking to the next waypoint. Your driver app updates this when a
+ * stop is reached or passed, and when the navigation reroutes. These
+ * `LatLng`s are returned in
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path`
+ * (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path`
+ * (REST) for all active Tasks assigned to the Vehicle.
+ * There are a few cases where this field might not be used to populate
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path`
+ * (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path`
+ * (REST):
+ * * The endpoint of the `current_route_segment` does not match
+ * `DeliveryVehicle.remaining_vehicle_journey_segments[0].stop` (gRPC) or
+ * `DeliveryVehicle.remainingVehicleJourneySegments[0].stop` (REST).
+ * * The driver app has not updated its location recently, so the last
+ * updated value for this field might be stale.
+ * * The driver app has recently updated its location, but the
+ * `current_route_segment` is stale, and points to a previous vehicle stop.
+ * In these cases, Fleet Engine populates this field with a route from the
+ * most recently passed VehicleStop to the upcoming VehicleStop to ensure that
+ * the consumer of this field has the best available information on the
+ * current path of the Delivery Vehicle.
+ *
+ * Generated from protobuf field bytes current_route_segment = 4;
+ */
+ protected $current_route_segment = '';
+ /**
+ * The location where the `current_route_segment` ends. This is not currently
+ * populated by the driver app, but you can supply it on
+ * `UpdateDeliveryVehicle` calls. It is either the `LatLng` from the upcoming
+ * vehicle stop, or the last `LatLng` of the `current_route_segment`. Fleet
+ * Engine will then do its best to interpolate to an actual `VehicleStop`.
+ * This field is ignored in `UpdateDeliveryVehicle` calls if the
+ * `current_route_segment` field is empty.
+ *
+ * Generated from protobuf field .google.type.LatLng current_route_segment_end_point = 5;
+ */
+ protected $current_route_segment_end_point = null;
+ /**
+ * The remaining driving distance for the `current_route_segment`.
+ * The Driver app typically provides this field, but there are some
+ * circumstances in which Fleet Engine will override the value sent by the
+ * app. For more information, see
+ * [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment].
+ * This field is returned in
+ * `Task.remaining_vehicle_journey_segments[0].driving_distance_meters` (gRPC)
+ * or `Task.remainingVehicleJourneySegments[0].drivingDistanceMeters` (REST)
+ * for all active `Task`s assigned to the Delivery Vehicle.
+ * Fleet Engine ignores this field in `UpdateDeliveryVehicleRequest` if the
+ * `current_route_segment` field is empty.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value remaining_distance_meters = 6;
+ */
+ protected $remaining_distance_meters = null;
+ /**
+ * The remaining driving time for the `current_route_segment`.
+ * The Driver app typically provides this field, but there are some
+ * circumstances in which Fleet Engine will override the value sent by the
+ * app. For more information, see
+ * [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment].
+ * This field is returned in
+ * `Task.remaining_vehicle_journey_segments[0].driving_duration` (gRPC) or
+ * `Task.remainingVehicleJourneySegments[0].drivingDuration` (REST) for all
+ * active tasks assigned to the Delivery Vehicle.
+ * Fleet Engine ignores this field in `UpdateDeliveryVehicleRequest` if the
+ * `current_route_segment` field is empty.
+ *
+ * Generated from protobuf field .google.protobuf.Duration remaining_duration = 7;
+ */
+ protected $remaining_duration = null;
+ /**
+ * The journey segments assigned to this Delivery Vehicle, starting from the
+ * Vehicle's most recently reported location. This field won't be populated
+ * in the response of `ListDeliveryVehicles`.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.VehicleJourneySegment remaining_vehicle_journey_segments = 8;
+ */
+ private $remaining_vehicle_journey_segments;
+ /**
+ * A list of custom Delivery Vehicle attributes. A Delivery Vehicle can have
+ * at most 100 attributes, and each attribute must have a unique key.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.DeliveryVehicleAttribute attributes = 9;
+ */
+ private $attributes;
+ /**
+ * The type of this delivery vehicle. If unset, this will default to `AUTO`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicle.DeliveryVehicleType type = 10;
+ */
+ protected $type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The unique name of this Delivery Vehicle.
+ * The format is `providers/{provider}/deliveryVehicles/{vehicle}`.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleLocation $last_location
+ * The last reported location of the Delivery Vehicle.
+ * @type int $navigation_status
+ * The Delivery Vehicle's navigation status.
+ * @type string $current_route_segment
+ * The encoded polyline specifying the route that the navigation recommends
+ * taking to the next waypoint. Your driver app updates this when a
+ * stop is reached or passed, and when the navigation reroutes. These
+ * `LatLng`s are returned in
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path`
+ * (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path`
+ * (REST) for all active Tasks assigned to the Vehicle.
+ * There are a few cases where this field might not be used to populate
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path`
+ * (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path`
+ * (REST):
+ * * The endpoint of the `current_route_segment` does not match
+ * `DeliveryVehicle.remaining_vehicle_journey_segments[0].stop` (gRPC) or
+ * `DeliveryVehicle.remainingVehicleJourneySegments[0].stop` (REST).
+ * * The driver app has not updated its location recently, so the last
+ * updated value for this field might be stale.
+ * * The driver app has recently updated its location, but the
+ * `current_route_segment` is stale, and points to a previous vehicle stop.
+ * In these cases, Fleet Engine populates this field with a route from the
+ * most recently passed VehicleStop to the upcoming VehicleStop to ensure that
+ * the consumer of this field has the best available information on the
+ * current path of the Delivery Vehicle.
+ * @type \Google\Type\LatLng $current_route_segment_end_point
+ * The location where the `current_route_segment` ends. This is not currently
+ * populated by the driver app, but you can supply it on
+ * `UpdateDeliveryVehicle` calls. It is either the `LatLng` from the upcoming
+ * vehicle stop, or the last `LatLng` of the `current_route_segment`. Fleet
+ * Engine will then do its best to interpolate to an actual `VehicleStop`.
+ * This field is ignored in `UpdateDeliveryVehicle` calls if the
+ * `current_route_segment` field is empty.
+ * @type \Google\Protobuf\Int32Value $remaining_distance_meters
+ * The remaining driving distance for the `current_route_segment`.
+ * The Driver app typically provides this field, but there are some
+ * circumstances in which Fleet Engine will override the value sent by the
+ * app. For more information, see
+ * [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment].
+ * This field is returned in
+ * `Task.remaining_vehicle_journey_segments[0].driving_distance_meters` (gRPC)
+ * or `Task.remainingVehicleJourneySegments[0].drivingDistanceMeters` (REST)
+ * for all active `Task`s assigned to the Delivery Vehicle.
+ * Fleet Engine ignores this field in `UpdateDeliveryVehicleRequest` if the
+ * `current_route_segment` field is empty.
+ * @type \Google\Protobuf\Duration $remaining_duration
+ * The remaining driving time for the `current_route_segment`.
+ * The Driver app typically provides this field, but there are some
+ * circumstances in which Fleet Engine will override the value sent by the
+ * app. For more information, see
+ * [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment].
+ * This field is returned in
+ * `Task.remaining_vehicle_journey_segments[0].driving_duration` (gRPC) or
+ * `Task.remainingVehicleJourneySegments[0].drivingDuration` (REST) for all
+ * active tasks assigned to the Delivery Vehicle.
+ * Fleet Engine ignores this field in `UpdateDeliveryVehicleRequest` if the
+ * `current_route_segment` field is empty.
+ * @type array<\Google\Maps\FleetEngine\Delivery\V1\VehicleJourneySegment>|\Google\Protobuf\Internal\RepeatedField $remaining_vehicle_journey_segments
+ * The journey segments assigned to this Delivery Vehicle, starting from the
+ * Vehicle's most recently reported location. This field won't be populated
+ * in the response of `ListDeliveryVehicles`.
+ * @type array<\Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleAttribute>|\Google\Protobuf\Internal\RepeatedField $attributes
+ * A list of custom Delivery Vehicle attributes. A Delivery Vehicle can have
+ * at most 100 attributes, and each attribute must have a unique key.
+ * @type int $type
+ * The type of this delivery vehicle. If unset, this will default to `AUTO`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryVehicles::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The unique name of this Delivery Vehicle.
+ * The format is `providers/{provider}/deliveryVehicles/{vehicle}`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The unique name of this Delivery Vehicle.
+ * The format is `providers/{provider}/deliveryVehicles/{vehicle}`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The last reported location of the Delivery Vehicle.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocation last_location = 2;
+ * @return \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleLocation|null
+ */
+ public function getLastLocation()
+ {
+ return $this->last_location;
+ }
+
+ public function hasLastLocation()
+ {
+ return isset($this->last_location);
+ }
+
+ public function clearLastLocation()
+ {
+ unset($this->last_location);
+ }
+
+ /**
+ * The last reported location of the Delivery Vehicle.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocation last_location = 2;
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleLocation $var
+ * @return $this
+ */
+ public function setLastLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleLocation::class);
+ $this->last_location = $var;
+
+ return $this;
+ }
+
+ /**
+ * The Delivery Vehicle's navigation status.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleNavigationStatus navigation_status = 3;
+ * @return int
+ */
+ public function getNavigationStatus()
+ {
+ return $this->navigation_status;
+ }
+
+ /**
+ * The Delivery Vehicle's navigation status.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleNavigationStatus navigation_status = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setNavigationStatus($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleNavigationStatus::class);
+ $this->navigation_status = $var;
+
+ return $this;
+ }
+
+ /**
+ * The encoded polyline specifying the route that the navigation recommends
+ * taking to the next waypoint. Your driver app updates this when a
+ * stop is reached or passed, and when the navigation reroutes. These
+ * `LatLng`s are returned in
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path`
+ * (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path`
+ * (REST) for all active Tasks assigned to the Vehicle.
+ * There are a few cases where this field might not be used to populate
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path`
+ * (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path`
+ * (REST):
+ * * The endpoint of the `current_route_segment` does not match
+ * `DeliveryVehicle.remaining_vehicle_journey_segments[0].stop` (gRPC) or
+ * `DeliveryVehicle.remainingVehicleJourneySegments[0].stop` (REST).
+ * * The driver app has not updated its location recently, so the last
+ * updated value for this field might be stale.
+ * * The driver app has recently updated its location, but the
+ * `current_route_segment` is stale, and points to a previous vehicle stop.
+ * In these cases, Fleet Engine populates this field with a route from the
+ * most recently passed VehicleStop to the upcoming VehicleStop to ensure that
+ * the consumer of this field has the best available information on the
+ * current path of the Delivery Vehicle.
+ *
+ * Generated from protobuf field bytes current_route_segment = 4;
+ * @return string
+ */
+ public function getCurrentRouteSegment()
+ {
+ return $this->current_route_segment;
+ }
+
+ /**
+ * The encoded polyline specifying the route that the navigation recommends
+ * taking to the next waypoint. Your driver app updates this when a
+ * stop is reached or passed, and when the navigation reroutes. These
+ * `LatLng`s are returned in
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path`
+ * (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path`
+ * (REST) for all active Tasks assigned to the Vehicle.
+ * There are a few cases where this field might not be used to populate
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path`
+ * (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path`
+ * (REST):
+ * * The endpoint of the `current_route_segment` does not match
+ * `DeliveryVehicle.remaining_vehicle_journey_segments[0].stop` (gRPC) or
+ * `DeliveryVehicle.remainingVehicleJourneySegments[0].stop` (REST).
+ * * The driver app has not updated its location recently, so the last
+ * updated value for this field might be stale.
+ * * The driver app has recently updated its location, but the
+ * `current_route_segment` is stale, and points to a previous vehicle stop.
+ * In these cases, Fleet Engine populates this field with a route from the
+ * most recently passed VehicleStop to the upcoming VehicleStop to ensure that
+ * the consumer of this field has the best available information on the
+ * current path of the Delivery Vehicle.
+ *
+ * Generated from protobuf field bytes current_route_segment = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setCurrentRouteSegment($var)
+ {
+ GPBUtil::checkString($var, False);
+ $this->current_route_segment = $var;
+
+ return $this;
+ }
+
+ /**
+ * The location where the `current_route_segment` ends. This is not currently
+ * populated by the driver app, but you can supply it on
+ * `UpdateDeliveryVehicle` calls. It is either the `LatLng` from the upcoming
+ * vehicle stop, or the last `LatLng` of the `current_route_segment`. Fleet
+ * Engine will then do its best to interpolate to an actual `VehicleStop`.
+ * This field is ignored in `UpdateDeliveryVehicle` calls if the
+ * `current_route_segment` field is empty.
+ *
+ * Generated from protobuf field .google.type.LatLng current_route_segment_end_point = 5;
+ * @return \Google\Type\LatLng|null
+ */
+ public function getCurrentRouteSegmentEndPoint()
+ {
+ return $this->current_route_segment_end_point;
+ }
+
+ public function hasCurrentRouteSegmentEndPoint()
+ {
+ return isset($this->current_route_segment_end_point);
+ }
+
+ public function clearCurrentRouteSegmentEndPoint()
+ {
+ unset($this->current_route_segment_end_point);
+ }
+
+ /**
+ * The location where the `current_route_segment` ends. This is not currently
+ * populated by the driver app, but you can supply it on
+ * `UpdateDeliveryVehicle` calls. It is either the `LatLng` from the upcoming
+ * vehicle stop, or the last `LatLng` of the `current_route_segment`. Fleet
+ * Engine will then do its best to interpolate to an actual `VehicleStop`.
+ * This field is ignored in `UpdateDeliveryVehicle` calls if the
+ * `current_route_segment` field is empty.
+ *
+ * Generated from protobuf field .google.type.LatLng current_route_segment_end_point = 5;
+ * @param \Google\Type\LatLng $var
+ * @return $this
+ */
+ public function setCurrentRouteSegmentEndPoint($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\LatLng::class);
+ $this->current_route_segment_end_point = $var;
+
+ return $this;
+ }
+
+ /**
+ * The remaining driving distance for the `current_route_segment`.
+ * The Driver app typically provides this field, but there are some
+ * circumstances in which Fleet Engine will override the value sent by the
+ * app. For more information, see
+ * [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment].
+ * This field is returned in
+ * `Task.remaining_vehicle_journey_segments[0].driving_distance_meters` (gRPC)
+ * or `Task.remainingVehicleJourneySegments[0].drivingDistanceMeters` (REST)
+ * for all active `Task`s assigned to the Delivery Vehicle.
+ * Fleet Engine ignores this field in `UpdateDeliveryVehicleRequest` if the
+ * `current_route_segment` field is empty.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value remaining_distance_meters = 6;
+ * @return \Google\Protobuf\Int32Value|null
+ */
+ public function getRemainingDistanceMeters()
+ {
+ return $this->remaining_distance_meters;
+ }
+
+ public function hasRemainingDistanceMeters()
+ {
+ return isset($this->remaining_distance_meters);
+ }
+
+ public function clearRemainingDistanceMeters()
+ {
+ unset($this->remaining_distance_meters);
+ }
+
+ /**
+ * Returns the unboxed value from getRemainingDistanceMeters()
+
+ * The remaining driving distance for the `current_route_segment`.
+ * The Driver app typically provides this field, but there are some
+ * circumstances in which Fleet Engine will override the value sent by the
+ * app. For more information, see
+ * [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment].
+ * This field is returned in
+ * `Task.remaining_vehicle_journey_segments[0].driving_distance_meters` (gRPC)
+ * or `Task.remainingVehicleJourneySegments[0].drivingDistanceMeters` (REST)
+ * for all active `Task`s assigned to the Delivery Vehicle.
+ * Fleet Engine ignores this field in `UpdateDeliveryVehicleRequest` if the
+ * `current_route_segment` field is empty.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value remaining_distance_meters = 6;
+ * @return int|null
+ */
+ public function getRemainingDistanceMetersUnwrapped()
+ {
+ return $this->readWrapperValue("remaining_distance_meters");
+ }
+
+ /**
+ * The remaining driving distance for the `current_route_segment`.
+ * The Driver app typically provides this field, but there are some
+ * circumstances in which Fleet Engine will override the value sent by the
+ * app. For more information, see
+ * [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment].
+ * This field is returned in
+ * `Task.remaining_vehicle_journey_segments[0].driving_distance_meters` (gRPC)
+ * or `Task.remainingVehicleJourneySegments[0].drivingDistanceMeters` (REST)
+ * for all active `Task`s assigned to the Delivery Vehicle.
+ * Fleet Engine ignores this field in `UpdateDeliveryVehicleRequest` if the
+ * `current_route_segment` field is empty.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value remaining_distance_meters = 6;
+ * @param \Google\Protobuf\Int32Value $var
+ * @return $this
+ */
+ public function setRemainingDistanceMeters($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Int32Value::class);
+ $this->remaining_distance_meters = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\Int32Value object.
+
+ * The remaining driving distance for the `current_route_segment`.
+ * The Driver app typically provides this field, but there are some
+ * circumstances in which Fleet Engine will override the value sent by the
+ * app. For more information, see
+ * [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment].
+ * This field is returned in
+ * `Task.remaining_vehicle_journey_segments[0].driving_distance_meters` (gRPC)
+ * or `Task.remainingVehicleJourneySegments[0].drivingDistanceMeters` (REST)
+ * for all active `Task`s assigned to the Delivery Vehicle.
+ * Fleet Engine ignores this field in `UpdateDeliveryVehicleRequest` if the
+ * `current_route_segment` field is empty.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value remaining_distance_meters = 6;
+ * @param int|null $var
+ * @return $this
+ */
+ public function setRemainingDistanceMetersUnwrapped($var)
+ {
+ $this->writeWrapperValue("remaining_distance_meters", $var);
+ return $this;}
+
+ /**
+ * The remaining driving time for the `current_route_segment`.
+ * The Driver app typically provides this field, but there are some
+ * circumstances in which Fleet Engine will override the value sent by the
+ * app. For more information, see
+ * [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment].
+ * This field is returned in
+ * `Task.remaining_vehicle_journey_segments[0].driving_duration` (gRPC) or
+ * `Task.remainingVehicleJourneySegments[0].drivingDuration` (REST) for all
+ * active tasks assigned to the Delivery Vehicle.
+ * Fleet Engine ignores this field in `UpdateDeliveryVehicleRequest` if the
+ * `current_route_segment` field is empty.
+ *
+ * Generated from protobuf field .google.protobuf.Duration remaining_duration = 7;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getRemainingDuration()
+ {
+ return $this->remaining_duration;
+ }
+
+ public function hasRemainingDuration()
+ {
+ return isset($this->remaining_duration);
+ }
+
+ public function clearRemainingDuration()
+ {
+ unset($this->remaining_duration);
+ }
+
+ /**
+ * The remaining driving time for the `current_route_segment`.
+ * The Driver app typically provides this field, but there are some
+ * circumstances in which Fleet Engine will override the value sent by the
+ * app. For more information, see
+ * [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment].
+ * This field is returned in
+ * `Task.remaining_vehicle_journey_segments[0].driving_duration` (gRPC) or
+ * `Task.remainingVehicleJourneySegments[0].drivingDuration` (REST) for all
+ * active tasks assigned to the Delivery Vehicle.
+ * Fleet Engine ignores this field in `UpdateDeliveryVehicleRequest` if the
+ * `current_route_segment` field is empty.
+ *
+ * Generated from protobuf field .google.protobuf.Duration remaining_duration = 7;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setRemainingDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->remaining_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * The journey segments assigned to this Delivery Vehicle, starting from the
+ * Vehicle's most recently reported location. This field won't be populated
+ * in the response of `ListDeliveryVehicles`.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.VehicleJourneySegment remaining_vehicle_journey_segments = 8;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRemainingVehicleJourneySegments()
+ {
+ return $this->remaining_vehicle_journey_segments;
+ }
+
+ /**
+ * The journey segments assigned to this Delivery Vehicle, starting from the
+ * Vehicle's most recently reported location. This field won't be populated
+ * in the response of `ListDeliveryVehicles`.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.VehicleJourneySegment remaining_vehicle_journey_segments = 8;
+ * @param array<\Google\Maps\FleetEngine\Delivery\V1\VehicleJourneySegment>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRemainingVehicleJourneySegments($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\FleetEngine\Delivery\V1\VehicleJourneySegment::class);
+ $this->remaining_vehicle_journey_segments = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A list of custom Delivery Vehicle attributes. A Delivery Vehicle can have
+ * at most 100 attributes, and each attribute must have a unique key.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.DeliveryVehicleAttribute attributes = 9;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAttributes()
+ {
+ return $this->attributes;
+ }
+
+ /**
+ * A list of custom Delivery Vehicle attributes. A Delivery Vehicle can have
+ * at most 100 attributes, and each attribute must have a unique key.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.DeliveryVehicleAttribute attributes = 9;
+ * @param array<\Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleAttribute>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAttributes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleAttribute::class);
+ $this->attributes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The type of this delivery vehicle. If unset, this will default to `AUTO`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicle.DeliveryVehicleType type = 10;
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * The type of this delivery vehicle. If unset, this will default to `AUTO`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicle.DeliveryVehicleType type = 10;
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle\DeliveryVehicleType::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicle/DeliveryVehicleType.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicle/DeliveryVehicleType.php
new file mode 100644
index 000000000000..896654441ac9
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicle/DeliveryVehicleType.php
@@ -0,0 +1,79 @@
+maps.fleetengine.delivery.v1.DeliveryVehicle.DeliveryVehicleType
+ */
+class DeliveryVehicleType
+{
+ /**
+ * The value is unused.
+ *
+ * Generated from protobuf enum DELIVERY_VEHICLE_TYPE_UNSPECIFIED = 0;
+ */
+ const DELIVERY_VEHICLE_TYPE_UNSPECIFIED = 0;
+ /**
+ * An automobile.
+ *
+ * Generated from protobuf enum AUTO = 1;
+ */
+ const AUTO = 1;
+ /**
+ * A motorcycle, moped, or other two-wheeled vehicle
+ *
+ * Generated from protobuf enum TWO_WHEELER = 2;
+ */
+ const TWO_WHEELER = 2;
+ /**
+ * Human-powered transport.
+ *
+ * Generated from protobuf enum BICYCLE = 3;
+ */
+ const BICYCLE = 3;
+ /**
+ * A human transporter, typically walking or running, traveling along
+ * pedestrian pathways.
+ *
+ * Generated from protobuf enum PEDESTRIAN = 4;
+ */
+ const PEDESTRIAN = 4;
+
+ private static $valueToName = [
+ self::DELIVERY_VEHICLE_TYPE_UNSPECIFIED => 'DELIVERY_VEHICLE_TYPE_UNSPECIFIED',
+ self::AUTO => 'AUTO',
+ self::TWO_WHEELER => 'TWO_WHEELER',
+ self::BICYCLE => 'BICYCLE',
+ self::PEDESTRIAN => 'PEDESTRIAN',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(DeliveryVehicleType::class, \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle_DeliveryVehicleType::class);
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicleAttribute.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicleAttribute.php
new file mode 100644
index 000000000000..6260a1669498
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicleAttribute.php
@@ -0,0 +1,225 @@
+maps.fleetengine.delivery.v1.DeliveryVehicleAttribute
+ */
+class DeliveryVehicleAttribute extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The attribute's key.
+ *
+ * Generated from protobuf field string key = 1;
+ */
+ protected $key = '';
+ /**
+ * The attribute's value.
+ *
+ * Generated from protobuf field string value = 2;
+ */
+ protected $value = '';
+ protected $delivery_vehicle_attribute_value;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $key
+ * The attribute's key.
+ * @type string $value
+ * The attribute's value.
+ * @type string $string_value
+ * String typed attribute value.
+ * Note: This is identical to the `value` field which will eventually be
+ * deprecated. For create or update methods, either field can be used, but
+ * it's strongly recommended to use `string_value`. If both `string_value`
+ * and `value` are set, they must be identical or an error will be thrown.
+ * Both fields are populated in responses.
+ * @type bool $bool_value
+ * Boolean typed attribute value.
+ * @type float $number_value
+ * Double typed attribute value.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\Common::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The attribute's key.
+ *
+ * Generated from protobuf field string key = 1;
+ * @return string
+ */
+ public function getKey()
+ {
+ return $this->key;
+ }
+
+ /**
+ * The attribute's key.
+ *
+ * Generated from protobuf field string key = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setKey($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->key = $var;
+
+ return $this;
+ }
+
+ /**
+ * The attribute's value.
+ *
+ * Generated from protobuf field string value = 2;
+ * @return string
+ */
+ public function getValue()
+ {
+ return $this->value;
+ }
+
+ /**
+ * The attribute's value.
+ *
+ * Generated from protobuf field string value = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setValue($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->value = $var;
+
+ return $this;
+ }
+
+ /**
+ * String typed attribute value.
+ * Note: This is identical to the `value` field which will eventually be
+ * deprecated. For create or update methods, either field can be used, but
+ * it's strongly recommended to use `string_value`. If both `string_value`
+ * and `value` are set, they must be identical or an error will be thrown.
+ * Both fields are populated in responses.
+ *
+ * Generated from protobuf field string string_value = 3;
+ * @return string
+ */
+ public function getStringValue()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasStringValue()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * String typed attribute value.
+ * Note: This is identical to the `value` field which will eventually be
+ * deprecated. For create or update methods, either field can be used, but
+ * it's strongly recommended to use `string_value`. If both `string_value`
+ * and `value` are set, they must be identical or an error will be thrown.
+ * Both fields are populated in responses.
+ *
+ * Generated from protobuf field string string_value = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setStringValue($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Boolean typed attribute value.
+ *
+ * Generated from protobuf field bool bool_value = 4;
+ * @return bool
+ */
+ public function getBoolValue()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasBoolValue()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Boolean typed attribute value.
+ *
+ * Generated from protobuf field bool bool_value = 4;
+ * @param bool $var
+ * @return $this
+ */
+ public function setBoolValue($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Double typed attribute value.
+ *
+ * Generated from protobuf field double number_value = 5;
+ * @return float
+ */
+ public function getNumberValue()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasNumberValue()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Double typed attribute value.
+ *
+ * Generated from protobuf field double number_value = 5;
+ * @param float $var
+ * @return $this
+ */
+ public function setNumberValue($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDeliveryVehicleAttributeValue()
+ {
+ return $this->whichOneof("delivery_vehicle_attribute_value");
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicleLocation.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicleLocation.php
new file mode 100644
index 000000000000..e5bcab30627f
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicleLocation.php
@@ -0,0 +1,1789 @@
+maps.fleetengine.delivery.v1.DeliveryVehicleLocation
+ */
+class DeliveryVehicleLocation extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The location of the vehicle.
+ * When it is sent to Fleet Engine, the vehicle's location is a GPS location.
+ * When you receive it in a response, the vehicle's location can be either a
+ * GPS location, a supplemental location, or some other estimated location.
+ * The source is specified in `location_sensor`.
+ *
+ * Generated from protobuf field .google.type.LatLng location = 1;
+ */
+ protected $location = null;
+ /**
+ * Deprecated: Use `latlng_accuracy` instead.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue horizontal_accuracy = 8 [deprecated = true];
+ * @deprecated
+ */
+ protected $horizontal_accuracy = null;
+ /**
+ * Accuracy of `location` in meters as a radius.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue latlng_accuracy = 22;
+ */
+ protected $latlng_accuracy = null;
+ /**
+ * Direction the vehicle is moving in degrees. 0 represents North.
+ * The valid range is [0,360).
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value heading = 2;
+ */
+ protected $heading = null;
+ /**
+ * Deprecated: Use `heading_accuracy` instead.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue bearing_accuracy = 10 [deprecated = true];
+ * @deprecated
+ */
+ protected $bearing_accuracy = null;
+ /**
+ * Accuracy of `heading` in degrees.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue heading_accuracy = 23;
+ */
+ protected $heading_accuracy = null;
+ /**
+ * Altitude in meters above WGS84.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue altitude = 5;
+ */
+ protected $altitude = null;
+ /**
+ * Deprecated: Use `altitude_accuracy` instead.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue vertical_accuracy = 9 [deprecated = true];
+ * @deprecated
+ */
+ protected $vertical_accuracy = null;
+ /**
+ * Accuracy of `altitude` in meters.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue altitude_accuracy = 24;
+ */
+ protected $altitude_accuracy = null;
+ /**
+ * Speed of the vehicle in kilometers per hour.
+ * Deprecated: Use `speed` instead.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value speed_kmph = 3 [deprecated = true];
+ * @deprecated
+ */
+ protected $speed_kmph = null;
+ /**
+ * Speed of the vehicle in meters/second
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue speed = 6;
+ */
+ protected $speed = null;
+ /**
+ * Accuracy of `speed` in meters/second.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue speed_accuracy = 7;
+ */
+ protected $speed_accuracy = null;
+ /**
+ * The time when `location` was reported by the sensor according to the
+ * sensor's clock.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4;
+ */
+ protected $update_time = null;
+ /**
+ * Output only. The time when the server received the location information.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp server_time = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $server_time = null;
+ /**
+ * Provider of location data (for example, `GPS`).
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocationSensor location_sensor = 11;
+ */
+ protected $location_sensor = 0;
+ /**
+ * Whether `location` is snapped to a road.
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue is_road_snapped = 27;
+ */
+ protected $is_road_snapped = null;
+ /**
+ * Input only. Indicates whether the GPS sensor is enabled on the mobile
+ * device.
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue is_gps_sensor_enabled = 12 [(.google.api.field_behavior) = INPUT_ONLY];
+ */
+ protected $is_gps_sensor_enabled = null;
+ /**
+ * Input only. Time (in seconds) since this location was first sent to the
+ * server. This will be zero for the first update. If the time is unknown (for
+ * example, when the app restarts), this value resets to zero.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value time_since_update = 14 [(.google.api.field_behavior) = INPUT_ONLY];
+ */
+ protected $time_since_update = null;
+ /**
+ * Input only. Deprecated: Other signals are now used to determine if a
+ * location is stale.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value num_stale_updates = 15 [deprecated = true, (.google.api.field_behavior) = INPUT_ONLY];
+ * @deprecated
+ */
+ protected $num_stale_updates = null;
+ /**
+ * Raw vehicle location (unprocessed by road-snapper).
+ *
+ * Generated from protobuf field .google.type.LatLng raw_location = 16;
+ */
+ protected $raw_location = null;
+ /**
+ * Timestamp associated with the raw location.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp raw_location_time = 17;
+ */
+ protected $raw_location_time = null;
+ /**
+ * Source of the raw location. Defaults to `GPS`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocationSensor raw_location_sensor = 28;
+ */
+ protected $raw_location_sensor = 0;
+ /**
+ * Accuracy of `raw_location` as a radius, in meters.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue raw_location_accuracy = 25;
+ */
+ protected $raw_location_accuracy = null;
+ /**
+ * Supplemental location provided by the integrating app.
+ *
+ * Generated from protobuf field .google.type.LatLng supplemental_location = 18;
+ */
+ protected $supplemental_location = null;
+ /**
+ * Timestamp associated with the supplemental location.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp supplemental_location_time = 19;
+ */
+ protected $supplemental_location_time = null;
+ /**
+ * Source of the supplemental location. Defaults to
+ * `CUSTOMER_SUPPLIED_LOCATION`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocationSensor supplemental_location_sensor = 20;
+ */
+ protected $supplemental_location_sensor = 0;
+ /**
+ * Accuracy of `supplemental_location` as a radius, in meters.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue supplemental_location_accuracy = 21;
+ */
+ protected $supplemental_location_accuracy = null;
+ /**
+ * Deprecated: Use `is_road_snapped` instead.
+ *
+ * Generated from protobuf field bool road_snapped = 26 [deprecated = true];
+ * @deprecated
+ */
+ protected $road_snapped = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Type\LatLng $location
+ * The location of the vehicle.
+ * When it is sent to Fleet Engine, the vehicle's location is a GPS location.
+ * When you receive it in a response, the vehicle's location can be either a
+ * GPS location, a supplemental location, or some other estimated location.
+ * The source is specified in `location_sensor`.
+ * @type \Google\Protobuf\DoubleValue $horizontal_accuracy
+ * Deprecated: Use `latlng_accuracy` instead.
+ * @type \Google\Protobuf\DoubleValue $latlng_accuracy
+ * Accuracy of `location` in meters as a radius.
+ * @type \Google\Protobuf\Int32Value $heading
+ * Direction the vehicle is moving in degrees. 0 represents North.
+ * The valid range is [0,360).
+ * @type \Google\Protobuf\DoubleValue $bearing_accuracy
+ * Deprecated: Use `heading_accuracy` instead.
+ * @type \Google\Protobuf\DoubleValue $heading_accuracy
+ * Accuracy of `heading` in degrees.
+ * @type \Google\Protobuf\DoubleValue $altitude
+ * Altitude in meters above WGS84.
+ * @type \Google\Protobuf\DoubleValue $vertical_accuracy
+ * Deprecated: Use `altitude_accuracy` instead.
+ * @type \Google\Protobuf\DoubleValue $altitude_accuracy
+ * Accuracy of `altitude` in meters.
+ * @type \Google\Protobuf\Int32Value $speed_kmph
+ * Speed of the vehicle in kilometers per hour.
+ * Deprecated: Use `speed` instead.
+ * @type \Google\Protobuf\DoubleValue $speed
+ * Speed of the vehicle in meters/second
+ * @type \Google\Protobuf\DoubleValue $speed_accuracy
+ * Accuracy of `speed` in meters/second.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * The time when `location` was reported by the sensor according to the
+ * sensor's clock.
+ * @type \Google\Protobuf\Timestamp $server_time
+ * Output only. The time when the server received the location information.
+ * @type int $location_sensor
+ * Provider of location data (for example, `GPS`).
+ * @type \Google\Protobuf\BoolValue $is_road_snapped
+ * Whether `location` is snapped to a road.
+ * @type \Google\Protobuf\BoolValue $is_gps_sensor_enabled
+ * Input only. Indicates whether the GPS sensor is enabled on the mobile
+ * device.
+ * @type \Google\Protobuf\Int32Value $time_since_update
+ * Input only. Time (in seconds) since this location was first sent to the
+ * server. This will be zero for the first update. If the time is unknown (for
+ * example, when the app restarts), this value resets to zero.
+ * @type \Google\Protobuf\Int32Value $num_stale_updates
+ * Input only. Deprecated: Other signals are now used to determine if a
+ * location is stale.
+ * @type \Google\Type\LatLng $raw_location
+ * Raw vehicle location (unprocessed by road-snapper).
+ * @type \Google\Protobuf\Timestamp $raw_location_time
+ * Timestamp associated with the raw location.
+ * @type int $raw_location_sensor
+ * Source of the raw location. Defaults to `GPS`.
+ * @type \Google\Protobuf\DoubleValue $raw_location_accuracy
+ * Accuracy of `raw_location` as a radius, in meters.
+ * @type \Google\Type\LatLng $supplemental_location
+ * Supplemental location provided by the integrating app.
+ * @type \Google\Protobuf\Timestamp $supplemental_location_time
+ * Timestamp associated with the supplemental location.
+ * @type int $supplemental_location_sensor
+ * Source of the supplemental location. Defaults to
+ * `CUSTOMER_SUPPLIED_LOCATION`.
+ * @type \Google\Protobuf\DoubleValue $supplemental_location_accuracy
+ * Accuracy of `supplemental_location` as a radius, in meters.
+ * @type bool $road_snapped
+ * Deprecated: Use `is_road_snapped` instead.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\Common::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The location of the vehicle.
+ * When it is sent to Fleet Engine, the vehicle's location is a GPS location.
+ * When you receive it in a response, the vehicle's location can be either a
+ * GPS location, a supplemental location, or some other estimated location.
+ * The source is specified in `location_sensor`.
+ *
+ * Generated from protobuf field .google.type.LatLng location = 1;
+ * @return \Google\Type\LatLng|null
+ */
+ public function getLocation()
+ {
+ return $this->location;
+ }
+
+ public function hasLocation()
+ {
+ return isset($this->location);
+ }
+
+ public function clearLocation()
+ {
+ unset($this->location);
+ }
+
+ /**
+ * The location of the vehicle.
+ * When it is sent to Fleet Engine, the vehicle's location is a GPS location.
+ * When you receive it in a response, the vehicle's location can be either a
+ * GPS location, a supplemental location, or some other estimated location.
+ * The source is specified in `location_sensor`.
+ *
+ * Generated from protobuf field .google.type.LatLng location = 1;
+ * @param \Google\Type\LatLng $var
+ * @return $this
+ */
+ public function setLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\LatLng::class);
+ $this->location = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated: Use `latlng_accuracy` instead.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue horizontal_accuracy = 8 [deprecated = true];
+ * @return \Google\Protobuf\DoubleValue|null
+ * @deprecated
+ */
+ public function getHorizontalAccuracy()
+ {
+ @trigger_error('horizontal_accuracy is deprecated.', E_USER_DEPRECATED);
+ return $this->horizontal_accuracy;
+ }
+
+ public function hasHorizontalAccuracy()
+ {
+ @trigger_error('horizontal_accuracy is deprecated.', E_USER_DEPRECATED);
+ return isset($this->horizontal_accuracy);
+ }
+
+ public function clearHorizontalAccuracy()
+ {
+ @trigger_error('horizontal_accuracy is deprecated.', E_USER_DEPRECATED);
+ unset($this->horizontal_accuracy);
+ }
+
+ /**
+ * Returns the unboxed value from getHorizontalAccuracy()
+
+ * Deprecated: Use `latlng_accuracy` instead.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue horizontal_accuracy = 8 [deprecated = true];
+ * @return float|null
+ */
+ public function getHorizontalAccuracyUnwrapped()
+ {
+ @trigger_error('horizontal_accuracy is deprecated.', E_USER_DEPRECATED);
+ return $this->readWrapperValue("horizontal_accuracy");
+ }
+
+ /**
+ * Deprecated: Use `latlng_accuracy` instead.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue horizontal_accuracy = 8 [deprecated = true];
+ * @param \Google\Protobuf\DoubleValue $var
+ * @return $this
+ * @deprecated
+ */
+ public function setHorizontalAccuracy($var)
+ {
+ @trigger_error('horizontal_accuracy is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkMessage($var, \Google\Protobuf\DoubleValue::class);
+ $this->horizontal_accuracy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\DoubleValue object.
+
+ * Deprecated: Use `latlng_accuracy` instead.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue horizontal_accuracy = 8 [deprecated = true];
+ * @param float|null $var
+ * @return $this
+ */
+ public function setHorizontalAccuracyUnwrapped($var)
+ {
+ $this->writeWrapperValue("horizontal_accuracy", $var);
+ return $this;}
+
+ /**
+ * Accuracy of `location` in meters as a radius.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue latlng_accuracy = 22;
+ * @return \Google\Protobuf\DoubleValue|null
+ */
+ public function getLatlngAccuracy()
+ {
+ return $this->latlng_accuracy;
+ }
+
+ public function hasLatlngAccuracy()
+ {
+ return isset($this->latlng_accuracy);
+ }
+
+ public function clearLatlngAccuracy()
+ {
+ unset($this->latlng_accuracy);
+ }
+
+ /**
+ * Returns the unboxed value from getLatlngAccuracy()
+
+ * Accuracy of `location` in meters as a radius.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue latlng_accuracy = 22;
+ * @return float|null
+ */
+ public function getLatlngAccuracyUnwrapped()
+ {
+ return $this->readWrapperValue("latlng_accuracy");
+ }
+
+ /**
+ * Accuracy of `location` in meters as a radius.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue latlng_accuracy = 22;
+ * @param \Google\Protobuf\DoubleValue $var
+ * @return $this
+ */
+ public function setLatlngAccuracy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\DoubleValue::class);
+ $this->latlng_accuracy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\DoubleValue object.
+
+ * Accuracy of `location` in meters as a radius.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue latlng_accuracy = 22;
+ * @param float|null $var
+ * @return $this
+ */
+ public function setLatlngAccuracyUnwrapped($var)
+ {
+ $this->writeWrapperValue("latlng_accuracy", $var);
+ return $this;}
+
+ /**
+ * Direction the vehicle is moving in degrees. 0 represents North.
+ * The valid range is [0,360).
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value heading = 2;
+ * @return \Google\Protobuf\Int32Value|null
+ */
+ public function getHeading()
+ {
+ return $this->heading;
+ }
+
+ public function hasHeading()
+ {
+ return isset($this->heading);
+ }
+
+ public function clearHeading()
+ {
+ unset($this->heading);
+ }
+
+ /**
+ * Returns the unboxed value from getHeading()
+
+ * Direction the vehicle is moving in degrees. 0 represents North.
+ * The valid range is [0,360).
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value heading = 2;
+ * @return int|null
+ */
+ public function getHeadingUnwrapped()
+ {
+ return $this->readWrapperValue("heading");
+ }
+
+ /**
+ * Direction the vehicle is moving in degrees. 0 represents North.
+ * The valid range is [0,360).
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value heading = 2;
+ * @param \Google\Protobuf\Int32Value $var
+ * @return $this
+ */
+ public function setHeading($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Int32Value::class);
+ $this->heading = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\Int32Value object.
+
+ * Direction the vehicle is moving in degrees. 0 represents North.
+ * The valid range is [0,360).
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value heading = 2;
+ * @param int|null $var
+ * @return $this
+ */
+ public function setHeadingUnwrapped($var)
+ {
+ $this->writeWrapperValue("heading", $var);
+ return $this;}
+
+ /**
+ * Deprecated: Use `heading_accuracy` instead.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue bearing_accuracy = 10 [deprecated = true];
+ * @return \Google\Protobuf\DoubleValue|null
+ * @deprecated
+ */
+ public function getBearingAccuracy()
+ {
+ @trigger_error('bearing_accuracy is deprecated.', E_USER_DEPRECATED);
+ return $this->bearing_accuracy;
+ }
+
+ public function hasBearingAccuracy()
+ {
+ @trigger_error('bearing_accuracy is deprecated.', E_USER_DEPRECATED);
+ return isset($this->bearing_accuracy);
+ }
+
+ public function clearBearingAccuracy()
+ {
+ @trigger_error('bearing_accuracy is deprecated.', E_USER_DEPRECATED);
+ unset($this->bearing_accuracy);
+ }
+
+ /**
+ * Returns the unboxed value from getBearingAccuracy()
+
+ * Deprecated: Use `heading_accuracy` instead.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue bearing_accuracy = 10 [deprecated = true];
+ * @return float|null
+ */
+ public function getBearingAccuracyUnwrapped()
+ {
+ @trigger_error('bearing_accuracy is deprecated.', E_USER_DEPRECATED);
+ return $this->readWrapperValue("bearing_accuracy");
+ }
+
+ /**
+ * Deprecated: Use `heading_accuracy` instead.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue bearing_accuracy = 10 [deprecated = true];
+ * @param \Google\Protobuf\DoubleValue $var
+ * @return $this
+ * @deprecated
+ */
+ public function setBearingAccuracy($var)
+ {
+ @trigger_error('bearing_accuracy is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkMessage($var, \Google\Protobuf\DoubleValue::class);
+ $this->bearing_accuracy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\DoubleValue object.
+
+ * Deprecated: Use `heading_accuracy` instead.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue bearing_accuracy = 10 [deprecated = true];
+ * @param float|null $var
+ * @return $this
+ */
+ public function setBearingAccuracyUnwrapped($var)
+ {
+ $this->writeWrapperValue("bearing_accuracy", $var);
+ return $this;}
+
+ /**
+ * Accuracy of `heading` in degrees.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue heading_accuracy = 23;
+ * @return \Google\Protobuf\DoubleValue|null
+ */
+ public function getHeadingAccuracy()
+ {
+ return $this->heading_accuracy;
+ }
+
+ public function hasHeadingAccuracy()
+ {
+ return isset($this->heading_accuracy);
+ }
+
+ public function clearHeadingAccuracy()
+ {
+ unset($this->heading_accuracy);
+ }
+
+ /**
+ * Returns the unboxed value from getHeadingAccuracy()
+
+ * Accuracy of `heading` in degrees.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue heading_accuracy = 23;
+ * @return float|null
+ */
+ public function getHeadingAccuracyUnwrapped()
+ {
+ return $this->readWrapperValue("heading_accuracy");
+ }
+
+ /**
+ * Accuracy of `heading` in degrees.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue heading_accuracy = 23;
+ * @param \Google\Protobuf\DoubleValue $var
+ * @return $this
+ */
+ public function setHeadingAccuracy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\DoubleValue::class);
+ $this->heading_accuracy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\DoubleValue object.
+
+ * Accuracy of `heading` in degrees.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue heading_accuracy = 23;
+ * @param float|null $var
+ * @return $this
+ */
+ public function setHeadingAccuracyUnwrapped($var)
+ {
+ $this->writeWrapperValue("heading_accuracy", $var);
+ return $this;}
+
+ /**
+ * Altitude in meters above WGS84.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue altitude = 5;
+ * @return \Google\Protobuf\DoubleValue|null
+ */
+ public function getAltitude()
+ {
+ return $this->altitude;
+ }
+
+ public function hasAltitude()
+ {
+ return isset($this->altitude);
+ }
+
+ public function clearAltitude()
+ {
+ unset($this->altitude);
+ }
+
+ /**
+ * Returns the unboxed value from getAltitude()
+
+ * Altitude in meters above WGS84.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue altitude = 5;
+ * @return float|null
+ */
+ public function getAltitudeUnwrapped()
+ {
+ return $this->readWrapperValue("altitude");
+ }
+
+ /**
+ * Altitude in meters above WGS84.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue altitude = 5;
+ * @param \Google\Protobuf\DoubleValue $var
+ * @return $this
+ */
+ public function setAltitude($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\DoubleValue::class);
+ $this->altitude = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\DoubleValue object.
+
+ * Altitude in meters above WGS84.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue altitude = 5;
+ * @param float|null $var
+ * @return $this
+ */
+ public function setAltitudeUnwrapped($var)
+ {
+ $this->writeWrapperValue("altitude", $var);
+ return $this;}
+
+ /**
+ * Deprecated: Use `altitude_accuracy` instead.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue vertical_accuracy = 9 [deprecated = true];
+ * @return \Google\Protobuf\DoubleValue|null
+ * @deprecated
+ */
+ public function getVerticalAccuracy()
+ {
+ @trigger_error('vertical_accuracy is deprecated.', E_USER_DEPRECATED);
+ return $this->vertical_accuracy;
+ }
+
+ public function hasVerticalAccuracy()
+ {
+ @trigger_error('vertical_accuracy is deprecated.', E_USER_DEPRECATED);
+ return isset($this->vertical_accuracy);
+ }
+
+ public function clearVerticalAccuracy()
+ {
+ @trigger_error('vertical_accuracy is deprecated.', E_USER_DEPRECATED);
+ unset($this->vertical_accuracy);
+ }
+
+ /**
+ * Returns the unboxed value from getVerticalAccuracy()
+
+ * Deprecated: Use `altitude_accuracy` instead.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue vertical_accuracy = 9 [deprecated = true];
+ * @return float|null
+ */
+ public function getVerticalAccuracyUnwrapped()
+ {
+ @trigger_error('vertical_accuracy is deprecated.', E_USER_DEPRECATED);
+ return $this->readWrapperValue("vertical_accuracy");
+ }
+
+ /**
+ * Deprecated: Use `altitude_accuracy` instead.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue vertical_accuracy = 9 [deprecated = true];
+ * @param \Google\Protobuf\DoubleValue $var
+ * @return $this
+ * @deprecated
+ */
+ public function setVerticalAccuracy($var)
+ {
+ @trigger_error('vertical_accuracy is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkMessage($var, \Google\Protobuf\DoubleValue::class);
+ $this->vertical_accuracy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\DoubleValue object.
+
+ * Deprecated: Use `altitude_accuracy` instead.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue vertical_accuracy = 9 [deprecated = true];
+ * @param float|null $var
+ * @return $this
+ */
+ public function setVerticalAccuracyUnwrapped($var)
+ {
+ $this->writeWrapperValue("vertical_accuracy", $var);
+ return $this;}
+
+ /**
+ * Accuracy of `altitude` in meters.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue altitude_accuracy = 24;
+ * @return \Google\Protobuf\DoubleValue|null
+ */
+ public function getAltitudeAccuracy()
+ {
+ return $this->altitude_accuracy;
+ }
+
+ public function hasAltitudeAccuracy()
+ {
+ return isset($this->altitude_accuracy);
+ }
+
+ public function clearAltitudeAccuracy()
+ {
+ unset($this->altitude_accuracy);
+ }
+
+ /**
+ * Returns the unboxed value from getAltitudeAccuracy()
+
+ * Accuracy of `altitude` in meters.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue altitude_accuracy = 24;
+ * @return float|null
+ */
+ public function getAltitudeAccuracyUnwrapped()
+ {
+ return $this->readWrapperValue("altitude_accuracy");
+ }
+
+ /**
+ * Accuracy of `altitude` in meters.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue altitude_accuracy = 24;
+ * @param \Google\Protobuf\DoubleValue $var
+ * @return $this
+ */
+ public function setAltitudeAccuracy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\DoubleValue::class);
+ $this->altitude_accuracy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\DoubleValue object.
+
+ * Accuracy of `altitude` in meters.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue altitude_accuracy = 24;
+ * @param float|null $var
+ * @return $this
+ */
+ public function setAltitudeAccuracyUnwrapped($var)
+ {
+ $this->writeWrapperValue("altitude_accuracy", $var);
+ return $this;}
+
+ /**
+ * Speed of the vehicle in kilometers per hour.
+ * Deprecated: Use `speed` instead.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value speed_kmph = 3 [deprecated = true];
+ * @return \Google\Protobuf\Int32Value|null
+ * @deprecated
+ */
+ public function getSpeedKmph()
+ {
+ @trigger_error('speed_kmph is deprecated.', E_USER_DEPRECATED);
+ return $this->speed_kmph;
+ }
+
+ public function hasSpeedKmph()
+ {
+ @trigger_error('speed_kmph is deprecated.', E_USER_DEPRECATED);
+ return isset($this->speed_kmph);
+ }
+
+ public function clearSpeedKmph()
+ {
+ @trigger_error('speed_kmph is deprecated.', E_USER_DEPRECATED);
+ unset($this->speed_kmph);
+ }
+
+ /**
+ * Returns the unboxed value from getSpeedKmph()
+
+ * Speed of the vehicle in kilometers per hour.
+ * Deprecated: Use `speed` instead.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value speed_kmph = 3 [deprecated = true];
+ * @return int|null
+ */
+ public function getSpeedKmphUnwrapped()
+ {
+ @trigger_error('speed_kmph is deprecated.', E_USER_DEPRECATED);
+ return $this->readWrapperValue("speed_kmph");
+ }
+
+ /**
+ * Speed of the vehicle in kilometers per hour.
+ * Deprecated: Use `speed` instead.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value speed_kmph = 3 [deprecated = true];
+ * @param \Google\Protobuf\Int32Value $var
+ * @return $this
+ * @deprecated
+ */
+ public function setSpeedKmph($var)
+ {
+ @trigger_error('speed_kmph is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkMessage($var, \Google\Protobuf\Int32Value::class);
+ $this->speed_kmph = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\Int32Value object.
+
+ * Speed of the vehicle in kilometers per hour.
+ * Deprecated: Use `speed` instead.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value speed_kmph = 3 [deprecated = true];
+ * @param int|null $var
+ * @return $this
+ */
+ public function setSpeedKmphUnwrapped($var)
+ {
+ $this->writeWrapperValue("speed_kmph", $var);
+ return $this;}
+
+ /**
+ * Speed of the vehicle in meters/second
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue speed = 6;
+ * @return \Google\Protobuf\DoubleValue|null
+ */
+ public function getSpeed()
+ {
+ return $this->speed;
+ }
+
+ public function hasSpeed()
+ {
+ return isset($this->speed);
+ }
+
+ public function clearSpeed()
+ {
+ unset($this->speed);
+ }
+
+ /**
+ * Returns the unboxed value from getSpeed()
+
+ * Speed of the vehicle in meters/second
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue speed = 6;
+ * @return float|null
+ */
+ public function getSpeedUnwrapped()
+ {
+ return $this->readWrapperValue("speed");
+ }
+
+ /**
+ * Speed of the vehicle in meters/second
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue speed = 6;
+ * @param \Google\Protobuf\DoubleValue $var
+ * @return $this
+ */
+ public function setSpeed($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\DoubleValue::class);
+ $this->speed = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\DoubleValue object.
+
+ * Speed of the vehicle in meters/second
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue speed = 6;
+ * @param float|null $var
+ * @return $this
+ */
+ public function setSpeedUnwrapped($var)
+ {
+ $this->writeWrapperValue("speed", $var);
+ return $this;}
+
+ /**
+ * Accuracy of `speed` in meters/second.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue speed_accuracy = 7;
+ * @return \Google\Protobuf\DoubleValue|null
+ */
+ public function getSpeedAccuracy()
+ {
+ return $this->speed_accuracy;
+ }
+
+ public function hasSpeedAccuracy()
+ {
+ return isset($this->speed_accuracy);
+ }
+
+ public function clearSpeedAccuracy()
+ {
+ unset($this->speed_accuracy);
+ }
+
+ /**
+ * Returns the unboxed value from getSpeedAccuracy()
+
+ * Accuracy of `speed` in meters/second.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue speed_accuracy = 7;
+ * @return float|null
+ */
+ public function getSpeedAccuracyUnwrapped()
+ {
+ return $this->readWrapperValue("speed_accuracy");
+ }
+
+ /**
+ * Accuracy of `speed` in meters/second.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue speed_accuracy = 7;
+ * @param \Google\Protobuf\DoubleValue $var
+ * @return $this
+ */
+ public function setSpeedAccuracy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\DoubleValue::class);
+ $this->speed_accuracy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\DoubleValue object.
+
+ * Accuracy of `speed` in meters/second.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue speed_accuracy = 7;
+ * @param float|null $var
+ * @return $this
+ */
+ public function setSpeedAccuracyUnwrapped($var)
+ {
+ $this->writeWrapperValue("speed_accuracy", $var);
+ return $this;}
+
+ /**
+ * The time when `location` was reported by the sensor according to the
+ * sensor's clock.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * The time when `location` was reported by the sensor according to the
+ * sensor's clock.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the server received the location information.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp server_time = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getServerTime()
+ {
+ return $this->server_time;
+ }
+
+ public function hasServerTime()
+ {
+ return isset($this->server_time);
+ }
+
+ public function clearServerTime()
+ {
+ unset($this->server_time);
+ }
+
+ /**
+ * Output only. The time when the server received the location information.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp server_time = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setServerTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->server_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Provider of location data (for example, `GPS`).
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocationSensor location_sensor = 11;
+ * @return int
+ */
+ public function getLocationSensor()
+ {
+ return $this->location_sensor;
+ }
+
+ /**
+ * Provider of location data (for example, `GPS`).
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocationSensor location_sensor = 11;
+ * @param int $var
+ * @return $this
+ */
+ public function setLocationSensor($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleLocationSensor::class);
+ $this->location_sensor = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether `location` is snapped to a road.
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue is_road_snapped = 27;
+ * @return \Google\Protobuf\BoolValue|null
+ */
+ public function getIsRoadSnapped()
+ {
+ return $this->is_road_snapped;
+ }
+
+ public function hasIsRoadSnapped()
+ {
+ return isset($this->is_road_snapped);
+ }
+
+ public function clearIsRoadSnapped()
+ {
+ unset($this->is_road_snapped);
+ }
+
+ /**
+ * Returns the unboxed value from getIsRoadSnapped()
+
+ * Whether `location` is snapped to a road.
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue is_road_snapped = 27;
+ * @return bool|null
+ */
+ public function getIsRoadSnappedUnwrapped()
+ {
+ return $this->readWrapperValue("is_road_snapped");
+ }
+
+ /**
+ * Whether `location` is snapped to a road.
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue is_road_snapped = 27;
+ * @param \Google\Protobuf\BoolValue $var
+ * @return $this
+ */
+ public function setIsRoadSnapped($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\BoolValue::class);
+ $this->is_road_snapped = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\BoolValue object.
+
+ * Whether `location` is snapped to a road.
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue is_road_snapped = 27;
+ * @param bool|null $var
+ * @return $this
+ */
+ public function setIsRoadSnappedUnwrapped($var)
+ {
+ $this->writeWrapperValue("is_road_snapped", $var);
+ return $this;}
+
+ /**
+ * Input only. Indicates whether the GPS sensor is enabled on the mobile
+ * device.
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue is_gps_sensor_enabled = 12 [(.google.api.field_behavior) = INPUT_ONLY];
+ * @return \Google\Protobuf\BoolValue|null
+ */
+ public function getIsGpsSensorEnabled()
+ {
+ return $this->is_gps_sensor_enabled;
+ }
+
+ public function hasIsGpsSensorEnabled()
+ {
+ return isset($this->is_gps_sensor_enabled);
+ }
+
+ public function clearIsGpsSensorEnabled()
+ {
+ unset($this->is_gps_sensor_enabled);
+ }
+
+ /**
+ * Returns the unboxed value from getIsGpsSensorEnabled()
+
+ * Input only. Indicates whether the GPS sensor is enabled on the mobile
+ * device.
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue is_gps_sensor_enabled = 12 [(.google.api.field_behavior) = INPUT_ONLY];
+ * @return bool|null
+ */
+ public function getIsGpsSensorEnabledUnwrapped()
+ {
+ return $this->readWrapperValue("is_gps_sensor_enabled");
+ }
+
+ /**
+ * Input only. Indicates whether the GPS sensor is enabled on the mobile
+ * device.
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue is_gps_sensor_enabled = 12 [(.google.api.field_behavior) = INPUT_ONLY];
+ * @param \Google\Protobuf\BoolValue $var
+ * @return $this
+ */
+ public function setIsGpsSensorEnabled($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\BoolValue::class);
+ $this->is_gps_sensor_enabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\BoolValue object.
+
+ * Input only. Indicates whether the GPS sensor is enabled on the mobile
+ * device.
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue is_gps_sensor_enabled = 12 [(.google.api.field_behavior) = INPUT_ONLY];
+ * @param bool|null $var
+ * @return $this
+ */
+ public function setIsGpsSensorEnabledUnwrapped($var)
+ {
+ $this->writeWrapperValue("is_gps_sensor_enabled", $var);
+ return $this;}
+
+ /**
+ * Input only. Time (in seconds) since this location was first sent to the
+ * server. This will be zero for the first update. If the time is unknown (for
+ * example, when the app restarts), this value resets to zero.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value time_since_update = 14 [(.google.api.field_behavior) = INPUT_ONLY];
+ * @return \Google\Protobuf\Int32Value|null
+ */
+ public function getTimeSinceUpdate()
+ {
+ return $this->time_since_update;
+ }
+
+ public function hasTimeSinceUpdate()
+ {
+ return isset($this->time_since_update);
+ }
+
+ public function clearTimeSinceUpdate()
+ {
+ unset($this->time_since_update);
+ }
+
+ /**
+ * Returns the unboxed value from getTimeSinceUpdate()
+
+ * Input only. Time (in seconds) since this location was first sent to the
+ * server. This will be zero for the first update. If the time is unknown (for
+ * example, when the app restarts), this value resets to zero.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value time_since_update = 14 [(.google.api.field_behavior) = INPUT_ONLY];
+ * @return int|null
+ */
+ public function getTimeSinceUpdateUnwrapped()
+ {
+ return $this->readWrapperValue("time_since_update");
+ }
+
+ /**
+ * Input only. Time (in seconds) since this location was first sent to the
+ * server. This will be zero for the first update. If the time is unknown (for
+ * example, when the app restarts), this value resets to zero.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value time_since_update = 14 [(.google.api.field_behavior) = INPUT_ONLY];
+ * @param \Google\Protobuf\Int32Value $var
+ * @return $this
+ */
+ public function setTimeSinceUpdate($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Int32Value::class);
+ $this->time_since_update = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\Int32Value object.
+
+ * Input only. Time (in seconds) since this location was first sent to the
+ * server. This will be zero for the first update. If the time is unknown (for
+ * example, when the app restarts), this value resets to zero.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value time_since_update = 14 [(.google.api.field_behavior) = INPUT_ONLY];
+ * @param int|null $var
+ * @return $this
+ */
+ public function setTimeSinceUpdateUnwrapped($var)
+ {
+ $this->writeWrapperValue("time_since_update", $var);
+ return $this;}
+
+ /**
+ * Input only. Deprecated: Other signals are now used to determine if a
+ * location is stale.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value num_stale_updates = 15 [deprecated = true, (.google.api.field_behavior) = INPUT_ONLY];
+ * @return \Google\Protobuf\Int32Value|null
+ * @deprecated
+ */
+ public function getNumStaleUpdates()
+ {
+ @trigger_error('num_stale_updates is deprecated.', E_USER_DEPRECATED);
+ return $this->num_stale_updates;
+ }
+
+ public function hasNumStaleUpdates()
+ {
+ @trigger_error('num_stale_updates is deprecated.', E_USER_DEPRECATED);
+ return isset($this->num_stale_updates);
+ }
+
+ public function clearNumStaleUpdates()
+ {
+ @trigger_error('num_stale_updates is deprecated.', E_USER_DEPRECATED);
+ unset($this->num_stale_updates);
+ }
+
+ /**
+ * Returns the unboxed value from getNumStaleUpdates()
+
+ * Input only. Deprecated: Other signals are now used to determine if a
+ * location is stale.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value num_stale_updates = 15 [deprecated = true, (.google.api.field_behavior) = INPUT_ONLY];
+ * @return int|null
+ */
+ public function getNumStaleUpdatesUnwrapped()
+ {
+ @trigger_error('num_stale_updates is deprecated.', E_USER_DEPRECATED);
+ return $this->readWrapperValue("num_stale_updates");
+ }
+
+ /**
+ * Input only. Deprecated: Other signals are now used to determine if a
+ * location is stale.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value num_stale_updates = 15 [deprecated = true, (.google.api.field_behavior) = INPUT_ONLY];
+ * @param \Google\Protobuf\Int32Value $var
+ * @return $this
+ * @deprecated
+ */
+ public function setNumStaleUpdates($var)
+ {
+ @trigger_error('num_stale_updates is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkMessage($var, \Google\Protobuf\Int32Value::class);
+ $this->num_stale_updates = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\Int32Value object.
+
+ * Input only. Deprecated: Other signals are now used to determine if a
+ * location is stale.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value num_stale_updates = 15 [deprecated = true, (.google.api.field_behavior) = INPUT_ONLY];
+ * @param int|null $var
+ * @return $this
+ */
+ public function setNumStaleUpdatesUnwrapped($var)
+ {
+ $this->writeWrapperValue("num_stale_updates", $var);
+ return $this;}
+
+ /**
+ * Raw vehicle location (unprocessed by road-snapper).
+ *
+ * Generated from protobuf field .google.type.LatLng raw_location = 16;
+ * @return \Google\Type\LatLng|null
+ */
+ public function getRawLocation()
+ {
+ return $this->raw_location;
+ }
+
+ public function hasRawLocation()
+ {
+ return isset($this->raw_location);
+ }
+
+ public function clearRawLocation()
+ {
+ unset($this->raw_location);
+ }
+
+ /**
+ * Raw vehicle location (unprocessed by road-snapper).
+ *
+ * Generated from protobuf field .google.type.LatLng raw_location = 16;
+ * @param \Google\Type\LatLng $var
+ * @return $this
+ */
+ public function setRawLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\LatLng::class);
+ $this->raw_location = $var;
+
+ return $this;
+ }
+
+ /**
+ * Timestamp associated with the raw location.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp raw_location_time = 17;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getRawLocationTime()
+ {
+ return $this->raw_location_time;
+ }
+
+ public function hasRawLocationTime()
+ {
+ return isset($this->raw_location_time);
+ }
+
+ public function clearRawLocationTime()
+ {
+ unset($this->raw_location_time);
+ }
+
+ /**
+ * Timestamp associated with the raw location.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp raw_location_time = 17;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setRawLocationTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->raw_location_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Source of the raw location. Defaults to `GPS`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocationSensor raw_location_sensor = 28;
+ * @return int
+ */
+ public function getRawLocationSensor()
+ {
+ return $this->raw_location_sensor;
+ }
+
+ /**
+ * Source of the raw location. Defaults to `GPS`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocationSensor raw_location_sensor = 28;
+ * @param int $var
+ * @return $this
+ */
+ public function setRawLocationSensor($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleLocationSensor::class);
+ $this->raw_location_sensor = $var;
+
+ return $this;
+ }
+
+ /**
+ * Accuracy of `raw_location` as a radius, in meters.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue raw_location_accuracy = 25;
+ * @return \Google\Protobuf\DoubleValue|null
+ */
+ public function getRawLocationAccuracy()
+ {
+ return $this->raw_location_accuracy;
+ }
+
+ public function hasRawLocationAccuracy()
+ {
+ return isset($this->raw_location_accuracy);
+ }
+
+ public function clearRawLocationAccuracy()
+ {
+ unset($this->raw_location_accuracy);
+ }
+
+ /**
+ * Returns the unboxed value from getRawLocationAccuracy()
+
+ * Accuracy of `raw_location` as a radius, in meters.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue raw_location_accuracy = 25;
+ * @return float|null
+ */
+ public function getRawLocationAccuracyUnwrapped()
+ {
+ return $this->readWrapperValue("raw_location_accuracy");
+ }
+
+ /**
+ * Accuracy of `raw_location` as a radius, in meters.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue raw_location_accuracy = 25;
+ * @param \Google\Protobuf\DoubleValue $var
+ * @return $this
+ */
+ public function setRawLocationAccuracy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\DoubleValue::class);
+ $this->raw_location_accuracy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\DoubleValue object.
+
+ * Accuracy of `raw_location` as a radius, in meters.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue raw_location_accuracy = 25;
+ * @param float|null $var
+ * @return $this
+ */
+ public function setRawLocationAccuracyUnwrapped($var)
+ {
+ $this->writeWrapperValue("raw_location_accuracy", $var);
+ return $this;}
+
+ /**
+ * Supplemental location provided by the integrating app.
+ *
+ * Generated from protobuf field .google.type.LatLng supplemental_location = 18;
+ * @return \Google\Type\LatLng|null
+ */
+ public function getSupplementalLocation()
+ {
+ return $this->supplemental_location;
+ }
+
+ public function hasSupplementalLocation()
+ {
+ return isset($this->supplemental_location);
+ }
+
+ public function clearSupplementalLocation()
+ {
+ unset($this->supplemental_location);
+ }
+
+ /**
+ * Supplemental location provided by the integrating app.
+ *
+ * Generated from protobuf field .google.type.LatLng supplemental_location = 18;
+ * @param \Google\Type\LatLng $var
+ * @return $this
+ */
+ public function setSupplementalLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\LatLng::class);
+ $this->supplemental_location = $var;
+
+ return $this;
+ }
+
+ /**
+ * Timestamp associated with the supplemental location.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp supplemental_location_time = 19;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getSupplementalLocationTime()
+ {
+ return $this->supplemental_location_time;
+ }
+
+ public function hasSupplementalLocationTime()
+ {
+ return isset($this->supplemental_location_time);
+ }
+
+ public function clearSupplementalLocationTime()
+ {
+ unset($this->supplemental_location_time);
+ }
+
+ /**
+ * Timestamp associated with the supplemental location.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp supplemental_location_time = 19;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setSupplementalLocationTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->supplemental_location_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Source of the supplemental location. Defaults to
+ * `CUSTOMER_SUPPLIED_LOCATION`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocationSensor supplemental_location_sensor = 20;
+ * @return int
+ */
+ public function getSupplementalLocationSensor()
+ {
+ return $this->supplemental_location_sensor;
+ }
+
+ /**
+ * Source of the supplemental location. Defaults to
+ * `CUSTOMER_SUPPLIED_LOCATION`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocationSensor supplemental_location_sensor = 20;
+ * @param int $var
+ * @return $this
+ */
+ public function setSupplementalLocationSensor($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleLocationSensor::class);
+ $this->supplemental_location_sensor = $var;
+
+ return $this;
+ }
+
+ /**
+ * Accuracy of `supplemental_location` as a radius, in meters.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue supplemental_location_accuracy = 21;
+ * @return \Google\Protobuf\DoubleValue|null
+ */
+ public function getSupplementalLocationAccuracy()
+ {
+ return $this->supplemental_location_accuracy;
+ }
+
+ public function hasSupplementalLocationAccuracy()
+ {
+ return isset($this->supplemental_location_accuracy);
+ }
+
+ public function clearSupplementalLocationAccuracy()
+ {
+ unset($this->supplemental_location_accuracy);
+ }
+
+ /**
+ * Returns the unboxed value from getSupplementalLocationAccuracy()
+
+ * Accuracy of `supplemental_location` as a radius, in meters.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue supplemental_location_accuracy = 21;
+ * @return float|null
+ */
+ public function getSupplementalLocationAccuracyUnwrapped()
+ {
+ return $this->readWrapperValue("supplemental_location_accuracy");
+ }
+
+ /**
+ * Accuracy of `supplemental_location` as a radius, in meters.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue supplemental_location_accuracy = 21;
+ * @param \Google\Protobuf\DoubleValue $var
+ * @return $this
+ */
+ public function setSupplementalLocationAccuracy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\DoubleValue::class);
+ $this->supplemental_location_accuracy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\DoubleValue object.
+
+ * Accuracy of `supplemental_location` as a radius, in meters.
+ *
+ * Generated from protobuf field .google.protobuf.DoubleValue supplemental_location_accuracy = 21;
+ * @param float|null $var
+ * @return $this
+ */
+ public function setSupplementalLocationAccuracyUnwrapped($var)
+ {
+ $this->writeWrapperValue("supplemental_location_accuracy", $var);
+ return $this;}
+
+ /**
+ * Deprecated: Use `is_road_snapped` instead.
+ *
+ * Generated from protobuf field bool road_snapped = 26 [deprecated = true];
+ * @return bool
+ * @deprecated
+ */
+ public function getRoadSnapped()
+ {
+ @trigger_error('road_snapped is deprecated.', E_USER_DEPRECATED);
+ return $this->road_snapped;
+ }
+
+ /**
+ * Deprecated: Use `is_road_snapped` instead.
+ *
+ * Generated from protobuf field bool road_snapped = 26 [deprecated = true];
+ * @param bool $var
+ * @return $this
+ * @deprecated
+ */
+ public function setRoadSnapped($var)
+ {
+ @trigger_error('road_snapped is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkBool($var);
+ $this->road_snapped = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicleLocationSensor.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicleLocationSensor.php
new file mode 100644
index 000000000000..eb723fbe4a61
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicleLocationSensor.php
@@ -0,0 +1,110 @@
+maps.fleetengine.delivery.v1.DeliveryVehicleLocationSensor
+ */
+class DeliveryVehicleLocationSensor
+{
+ /**
+ * The sensor is unspecified or unknown.
+ *
+ * Generated from protobuf enum UNKNOWN_SENSOR = 0;
+ */
+ const UNKNOWN_SENSOR = 0;
+ /**
+ * GPS or Assisted GPS.
+ *
+ * Generated from protobuf enum GPS = 1;
+ */
+ const GPS = 1;
+ /**
+ * Assisted GPS, cell tower ID, or WiFi access point.
+ *
+ * Generated from protobuf enum NETWORK = 2;
+ */
+ const NETWORK = 2;
+ /**
+ * Cell tower ID or WiFi access point.
+ *
+ * Generated from protobuf enum PASSIVE = 3;
+ */
+ const PASSIVE = 3;
+ /**
+ * A location determined by the mobile device to be the most likely
+ * road position.
+ *
+ * Generated from protobuf enum ROAD_SNAPPED_LOCATION_PROVIDER = 4;
+ */
+ const ROAD_SNAPPED_LOCATION_PROVIDER = 4;
+ /**
+ * A customer-supplied location from an independent source. Typically, this
+ * value is used for a location provided from sources other than the mobile
+ * device running Driver SDK. If the original source is described by one of
+ * the other enum values, use that value. Locations marked
+ * CUSTOMER_SUPPLIED_LOCATION are typically provided via a DeliveryVehicle's
+ * `last_location.supplemental_location_sensor`.
+ *
+ * Generated from protobuf enum CUSTOMER_SUPPLIED_LOCATION = 5;
+ */
+ const CUSTOMER_SUPPLIED_LOCATION = 5;
+ /**
+ * A location calculated by Fleet Engine based on the signals available to it.
+ * Output only. This value will be rejected if it is received in a request.
+ *
+ * Generated from protobuf enum FLEET_ENGINE_LOCATION = 6;
+ */
+ const FLEET_ENGINE_LOCATION = 6;
+ /**
+ * Android's Fused Location Provider.
+ *
+ * Generated from protobuf enum FUSED_LOCATION_PROVIDER = 100;
+ */
+ const FUSED_LOCATION_PROVIDER = 100;
+ /**
+ * The location provider on Apple operating systems.
+ *
+ * Generated from protobuf enum CORE_LOCATION = 200;
+ */
+ const CORE_LOCATION = 200;
+
+ private static $valueToName = [
+ self::UNKNOWN_SENSOR => 'UNKNOWN_SENSOR',
+ self::GPS => 'GPS',
+ self::NETWORK => 'NETWORK',
+ self::PASSIVE => 'PASSIVE',
+ self::ROAD_SNAPPED_LOCATION_PROVIDER => 'ROAD_SNAPPED_LOCATION_PROVIDER',
+ self::CUSTOMER_SUPPLIED_LOCATION => 'CUSTOMER_SUPPLIED_LOCATION',
+ self::FLEET_ENGINE_LOCATION => 'FLEET_ENGINE_LOCATION',
+ self::FUSED_LOCATION_PROVIDER => 'FUSED_LOCATION_PROVIDER',
+ self::CORE_LOCATION => 'CORE_LOCATION',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicleNavigationStatus.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicleNavigationStatus.php
new file mode 100644
index 000000000000..2e8bcd7c4266
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/DeliveryVehicleNavigationStatus.php
@@ -0,0 +1,76 @@
+maps.fleetengine.delivery.v1.DeliveryVehicleNavigationStatus
+ */
+class DeliveryVehicleNavigationStatus
+{
+ /**
+ * Unspecified navigation status.
+ *
+ * Generated from protobuf enum UNKNOWN_NAVIGATION_STATUS = 0;
+ */
+ const UNKNOWN_NAVIGATION_STATUS = 0;
+ /**
+ * The Driver app's navigation is in `FREE_NAV` mode.
+ *
+ * Generated from protobuf enum NO_GUIDANCE = 1;
+ */
+ const NO_GUIDANCE = 1;
+ /**
+ * Turn-by-turn navigation is available and the Driver app navigation has
+ * entered `GUIDED_NAV` mode.
+ *
+ * Generated from protobuf enum ENROUTE_TO_DESTINATION = 2;
+ */
+ const ENROUTE_TO_DESTINATION = 2;
+ /**
+ * The vehicle has gone off the suggested route.
+ *
+ * Generated from protobuf enum OFF_ROUTE = 3;
+ */
+ const OFF_ROUTE = 3;
+ /**
+ * The vehicle is within approximately 50m of the destination.
+ *
+ * Generated from protobuf enum ARRIVED_AT_DESTINATION = 4;
+ */
+ const ARRIVED_AT_DESTINATION = 4;
+
+ private static $valueToName = [
+ self::UNKNOWN_NAVIGATION_STATUS => 'UNKNOWN_NAVIGATION_STATUS',
+ self::NO_GUIDANCE => 'NO_GUIDANCE',
+ self::ENROUTE_TO_DESTINATION => 'ENROUTE_TO_DESTINATION',
+ self::OFF_ROUTE => 'OFF_ROUTE',
+ self::ARRIVED_AT_DESTINATION => 'ARRIVED_AT_DESTINATION',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/GetDeliveryVehicleRequest.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/GetDeliveryVehicleRequest.php
new file mode 100644
index 000000000000..20719e8f261d
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/GetDeliveryVehicleRequest.php
@@ -0,0 +1,140 @@
+maps.fleetengine.delivery.v1.GetDeliveryVehicleRequest
+ */
+class GetDeliveryVehicleRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $header = null;
+ /**
+ * Required. Must be in the format
+ * `providers/{provider}/deliveryVehicles/{delivery_vehicle}`.
+ * The `provider` must be the Google Cloud Project ID. For example,
+ * `sample-cloud-project`.
+ *
+ * Generated from protobuf field string name = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Must be in the format
+ * `providers/{provider}/deliveryVehicles/{delivery_vehicle}`.
+ * The `provider` must be the Google Cloud Project ID. For example,
+ * `sample-cloud-project`. Please see
+ * {@see DeliveryServiceClient::deliveryVehicleName()} for help formatting this field.
+ *
+ * @return \Google\Maps\FleetEngine\Delivery\V1\GetDeliveryVehicleRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $header
+ * Optional. The standard Delivery API request header.
+ * @type string $name
+ * Required. Must be in the format
+ * `providers/{provider}/deliveryVehicles/{delivery_vehicle}`.
+ * The `provider` must be the Google Cloud Project ID. For example,
+ * `sample-cloud-project`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryApi::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader|null
+ */
+ public function getHeader()
+ {
+ return $this->header;
+ }
+
+ public function hasHeader()
+ {
+ return isset($this->header);
+ }
+
+ public function clearHeader()
+ {
+ unset($this->header);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $var
+ * @return $this
+ */
+ public function setHeader($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader::class);
+ $this->header = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Must be in the format
+ * `providers/{provider}/deliveryVehicles/{delivery_vehicle}`.
+ * The `provider` must be the Google Cloud Project ID. For example,
+ * `sample-cloud-project`.
+ *
+ * Generated from protobuf field string name = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Must be in the format
+ * `providers/{provider}/deliveryVehicles/{delivery_vehicle}`.
+ * The `provider` must be the Google Cloud Project ID. For example,
+ * `sample-cloud-project`.
+ *
+ * Generated from protobuf field string name = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/GetTaskRequest.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/GetTaskRequest.php
new file mode 100644
index 000000000000..019e1e9dc29d
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/GetTaskRequest.php
@@ -0,0 +1,135 @@
+maps.fleetengine.delivery.v1.GetTaskRequest
+ */
+class GetTaskRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $header = null;
+ /**
+ * Required. Must be in the format `providers/{provider}/tasks/{task}`. The
+ * `provider` must be the Google Cloud Project ID. For example,
+ * `sample-cloud-project`.
+ *
+ * Generated from protobuf field string name = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Must be in the format `providers/{provider}/tasks/{task}`. The
+ * `provider` must be the Google Cloud Project ID. For example,
+ * `sample-cloud-project`. Please see
+ * {@see DeliveryServiceClient::taskName()} for help formatting this field.
+ *
+ * @return \Google\Maps\FleetEngine\Delivery\V1\GetTaskRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $header
+ * Optional. The standard Delivery API request header.
+ * @type string $name
+ * Required. Must be in the format `providers/{provider}/tasks/{task}`. The
+ * `provider` must be the Google Cloud Project ID. For example,
+ * `sample-cloud-project`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryApi::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader|null
+ */
+ public function getHeader()
+ {
+ return $this->header;
+ }
+
+ public function hasHeader()
+ {
+ return isset($this->header);
+ }
+
+ public function clearHeader()
+ {
+ unset($this->header);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $var
+ * @return $this
+ */
+ public function setHeader($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader::class);
+ $this->header = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Must be in the format `providers/{provider}/tasks/{task}`. The
+ * `provider` must be the Google Cloud Project ID. For example,
+ * `sample-cloud-project`.
+ *
+ * Generated from protobuf field string name = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Must be in the format `providers/{provider}/tasks/{task}`. The
+ * `provider` must be the Google Cloud Project ID. For example,
+ * `sample-cloud-project`.
+ *
+ * Generated from protobuf field string name = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/GetTaskTrackingInfoRequest.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/GetTaskTrackingInfoRequest.php
new file mode 100644
index 000000000000..022c8c8f04b0
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/GetTaskTrackingInfoRequest.php
@@ -0,0 +1,145 @@
+maps.fleetengine.delivery.v1.GetTaskTrackingInfoRequest
+ */
+class GetTaskTrackingInfoRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $header = null;
+ /**
+ * Required. Must be in the format
+ * `providers/{provider}/taskTrackingInfo/{tracking_id}`. The `provider`
+ * must be the Google Cloud Project ID, and the `tracking_id` must be the
+ * tracking ID associated with the task. An example name can be
+ * `providers/sample-cloud-project/taskTrackingInfo/sample-tracking-id`.
+ *
+ * Generated from protobuf field string name = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Must be in the format
+ * `providers/{provider}/taskTrackingInfo/{tracking_id}`. The `provider`
+ * must be the Google Cloud Project ID, and the `tracking_id` must be the
+ * tracking ID associated with the task. An example name can be
+ * `providers/sample-cloud-project/taskTrackingInfo/sample-tracking-id`. Please see
+ * {@see DeliveryServiceClient::taskTrackingInfoName()} for help formatting this field.
+ *
+ * @return \Google\Maps\FleetEngine\Delivery\V1\GetTaskTrackingInfoRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $header
+ * Optional. The standard Delivery API request header.
+ * @type string $name
+ * Required. Must be in the format
+ * `providers/{provider}/taskTrackingInfo/{tracking_id}`. The `provider`
+ * must be the Google Cloud Project ID, and the `tracking_id` must be the
+ * tracking ID associated with the task. An example name can be
+ * `providers/sample-cloud-project/taskTrackingInfo/sample-tracking-id`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryApi::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader|null
+ */
+ public function getHeader()
+ {
+ return $this->header;
+ }
+
+ public function hasHeader()
+ {
+ return isset($this->header);
+ }
+
+ public function clearHeader()
+ {
+ unset($this->header);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $var
+ * @return $this
+ */
+ public function setHeader($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader::class);
+ $this->header = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Must be in the format
+ * `providers/{provider}/taskTrackingInfo/{tracking_id}`. The `provider`
+ * must be the Google Cloud Project ID, and the `tracking_id` must be the
+ * tracking ID associated with the task. An example name can be
+ * `providers/sample-cloud-project/taskTrackingInfo/sample-tracking-id`.
+ *
+ * Generated from protobuf field string name = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Must be in the format
+ * `providers/{provider}/taskTrackingInfo/{tracking_id}`. The `provider`
+ * must be the Google Cloud Project ID, and the `tracking_id` must be the
+ * tracking ID associated with the task. An example name can be
+ * `providers/sample-cloud-project/taskTrackingInfo/sample-tracking-id`.
+ *
+ * Generated from protobuf field string name = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/ListDeliveryVehiclesRequest.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/ListDeliveryVehiclesRequest.php
new file mode 100644
index 000000000000..6bdedae146df
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/ListDeliveryVehiclesRequest.php
@@ -0,0 +1,365 @@
+maps.fleetengine.delivery.v1.ListDeliveryVehiclesRequest
+ */
+class ListDeliveryVehiclesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $header = null;
+ /**
+ * Required. Must be in the format `providers/{provider}`.
+ * The `provider` must be the Google Cloud Project ID.
+ * For example, `sample-cloud-project`.
+ *
+ * Generated from protobuf field string parent = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of vehicles to return. The service may return
+ * fewer than this number. If you don't specify this number, then the server
+ * determines the number of results to return.
+ *
+ * Generated from protobuf field int32 page_size = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. A page token, received from a previous `ListDeliveryVehicles`
+ * call. You must provide this in order to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListDeliveryVehicles`
+ * must match the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+ /**
+ * Optional. A filter query to apply when listing delivery vehicles. See
+ * http://aip.dev/160 for examples of the filter syntax. If you don't specify
+ * a value, or if you specify an empty string for the filter, then all
+ * delivery vehicles are returned.
+ * Note that the only queries supported for `ListDeliveryVehicles` are
+ * on vehicle attributes (for example, `attributes. = ` or
+ * `attributes. = AND attributes. = `). Also, all
+ * attributes are stored as strings, so the only supported comparisons against
+ * attributes are string comparisons. In order to compare against number or
+ * boolean values, the values must be explicitly quoted to be treated as
+ * strings (for example, `attributes. = "10"` or
+ * `attributes. = "true"`).
+ * The maximum number of restrictions allowed in a filter query is 50. A
+ * restriction is a part of the query of the form
+ * `attribute.`, for example `attributes.foo = bar`
+ * is 1 restriction.
+ *
+ * Generated from protobuf field string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. A filter that limits the vehicles returned to those whose last
+ * known location was in the rectangular area defined by the viewport.
+ *
+ * Generated from protobuf field .google.geo.type.Viewport viewport = 7 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $viewport = null;
+
+ /**
+ * @param string $parent Required. Must be in the format `providers/{provider}`.
+ * The `provider` must be the Google Cloud Project ID.
+ * For example, `sample-cloud-project`. Please see
+ * {@see DeliveryServiceClient::providerName()} for help formatting this field.
+ *
+ * @return \Google\Maps\FleetEngine\Delivery\V1\ListDeliveryVehiclesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $header
+ * Optional. The standard Delivery API request header.
+ * @type string $parent
+ * Required. Must be in the format `providers/{provider}`.
+ * The `provider` must be the Google Cloud Project ID.
+ * For example, `sample-cloud-project`.
+ * @type int $page_size
+ * Optional. The maximum number of vehicles to return. The service may return
+ * fewer than this number. If you don't specify this number, then the server
+ * determines the number of results to return.
+ * @type string $page_token
+ * Optional. A page token, received from a previous `ListDeliveryVehicles`
+ * call. You must provide this in order to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListDeliveryVehicles`
+ * must match the call that provided the page token.
+ * @type string $filter
+ * Optional. A filter query to apply when listing delivery vehicles. See
+ * http://aip.dev/160 for examples of the filter syntax. If you don't specify
+ * a value, or if you specify an empty string for the filter, then all
+ * delivery vehicles are returned.
+ * Note that the only queries supported for `ListDeliveryVehicles` are
+ * on vehicle attributes (for example, `attributes. = ` or
+ * `attributes. = AND attributes. = `). Also, all
+ * attributes are stored as strings, so the only supported comparisons against
+ * attributes are string comparisons. In order to compare against number or
+ * boolean values, the values must be explicitly quoted to be treated as
+ * strings (for example, `attributes. = "10"` or
+ * `attributes. = "true"`).
+ * The maximum number of restrictions allowed in a filter query is 50. A
+ * restriction is a part of the query of the form
+ * `attribute.`, for example `attributes.foo = bar`
+ * is 1 restriction.
+ * @type \Google\Geo\Type\Viewport $viewport
+ * Optional. A filter that limits the vehicles returned to those whose last
+ * known location was in the rectangular area defined by the viewport.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryApi::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader|null
+ */
+ public function getHeader()
+ {
+ return $this->header;
+ }
+
+ public function hasHeader()
+ {
+ return isset($this->header);
+ }
+
+ public function clearHeader()
+ {
+ unset($this->header);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $var
+ * @return $this
+ */
+ public function setHeader($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader::class);
+ $this->header = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Must be in the format `providers/{provider}`.
+ * The `provider` must be the Google Cloud Project ID.
+ * For example, `sample-cloud-project`.
+ *
+ * Generated from protobuf field string parent = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Must be in the format `providers/{provider}`.
+ * The `provider` must be the Google Cloud Project ID.
+ * For example, `sample-cloud-project`.
+ *
+ * Generated from protobuf field string parent = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The maximum number of vehicles to return. The service may return
+ * fewer than this number. If you don't specify this number, then the server
+ * determines the number of results to return.
+ *
+ * Generated from protobuf field int32 page_size = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. The maximum number of vehicles to return. The service may return
+ * fewer than this number. If you don't specify this number, then the server
+ * determines the number of results to return.
+ *
+ * Generated from protobuf field int32 page_size = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A page token, received from a previous `ListDeliveryVehicles`
+ * call. You must provide this in order to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListDeliveryVehicles`
+ * must match the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. A page token, received from a previous `ListDeliveryVehicles`
+ * call. You must provide this in order to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListDeliveryVehicles`
+ * must match the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A filter query to apply when listing delivery vehicles. See
+ * http://aip.dev/160 for examples of the filter syntax. If you don't specify
+ * a value, or if you specify an empty string for the filter, then all
+ * delivery vehicles are returned.
+ * Note that the only queries supported for `ListDeliveryVehicles` are
+ * on vehicle attributes (for example, `attributes. = ` or
+ * `attributes. = AND attributes. = `). Also, all
+ * attributes are stored as strings, so the only supported comparisons against
+ * attributes are string comparisons. In order to compare against number or
+ * boolean values, the values must be explicitly quoted to be treated as
+ * strings (for example, `attributes. = "10"` or
+ * `attributes. = "true"`).
+ * The maximum number of restrictions allowed in a filter query is 50. A
+ * restriction is a part of the query of the form
+ * `attribute.`, for example `attributes.foo = bar`
+ * is 1 restriction.
+ *
+ * Generated from protobuf field string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. A filter query to apply when listing delivery vehicles. See
+ * http://aip.dev/160 for examples of the filter syntax. If you don't specify
+ * a value, or if you specify an empty string for the filter, then all
+ * delivery vehicles are returned.
+ * Note that the only queries supported for `ListDeliveryVehicles` are
+ * on vehicle attributes (for example, `attributes. = ` or
+ * `attributes. = AND attributes. = `). Also, all
+ * attributes are stored as strings, so the only supported comparisons against
+ * attributes are string comparisons. In order to compare against number or
+ * boolean values, the values must be explicitly quoted to be treated as
+ * strings (for example, `attributes. = "10"` or
+ * `attributes. = "true"`).
+ * The maximum number of restrictions allowed in a filter query is 50. A
+ * restriction is a part of the query of the form
+ * `attribute.`, for example `attributes.foo = bar`
+ * is 1 restriction.
+ *
+ * Generated from protobuf field string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A filter that limits the vehicles returned to those whose last
+ * known location was in the rectangular area defined by the viewport.
+ *
+ * Generated from protobuf field .google.geo.type.Viewport viewport = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Geo\Type\Viewport|null
+ */
+ public function getViewport()
+ {
+ return $this->viewport;
+ }
+
+ public function hasViewport()
+ {
+ return isset($this->viewport);
+ }
+
+ public function clearViewport()
+ {
+ unset($this->viewport);
+ }
+
+ /**
+ * Optional. A filter that limits the vehicles returned to those whose last
+ * known location was in the rectangular area defined by the viewport.
+ *
+ * Generated from protobuf field .google.geo.type.Viewport viewport = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Geo\Type\Viewport $var
+ * @return $this
+ */
+ public function setViewport($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Geo\Type\Viewport::class);
+ $this->viewport = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/ListDeliveryVehiclesResponse.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/ListDeliveryVehiclesResponse.php
new file mode 100644
index 000000000000..286675bd84db
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/ListDeliveryVehiclesResponse.php
@@ -0,0 +1,159 @@
+maps.fleetengine.delivery.v1.ListDeliveryVehiclesResponse
+ */
+class ListDeliveryVehiclesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The set of delivery vehicles that meet the requested filtering criteria.
+ * When no filter is specified, the request returns all delivery vehicles. A
+ * successful response can also be empty. An empty response indicates that no
+ * delivery vehicles were found meeting the requested filter criteria.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.DeliveryVehicle delivery_vehicles = 1;
+ */
+ private $delivery_vehicles;
+ /**
+ * You can pass this token in the `ListDeliveryVehiclesRequest` to continue to
+ * list results. When all of the results are returned, this field won't be in
+ * the response, or it will be an empty string.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * The total number of delivery vehicles that match the request criteria,
+ * across all pages.
+ *
+ * Generated from protobuf field int64 total_size = 3;
+ */
+ protected $total_size = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle>|\Google\Protobuf\Internal\RepeatedField $delivery_vehicles
+ * The set of delivery vehicles that meet the requested filtering criteria.
+ * When no filter is specified, the request returns all delivery vehicles. A
+ * successful response can also be empty. An empty response indicates that no
+ * delivery vehicles were found meeting the requested filter criteria.
+ * @type string $next_page_token
+ * You can pass this token in the `ListDeliveryVehiclesRequest` to continue to
+ * list results. When all of the results are returned, this field won't be in
+ * the response, or it will be an empty string.
+ * @type int|string $total_size
+ * The total number of delivery vehicles that match the request criteria,
+ * across all pages.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryApi::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The set of delivery vehicles that meet the requested filtering criteria.
+ * When no filter is specified, the request returns all delivery vehicles. A
+ * successful response can also be empty. An empty response indicates that no
+ * delivery vehicles were found meeting the requested filter criteria.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.DeliveryVehicle delivery_vehicles = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDeliveryVehicles()
+ {
+ return $this->delivery_vehicles;
+ }
+
+ /**
+ * The set of delivery vehicles that meet the requested filtering criteria.
+ * When no filter is specified, the request returns all delivery vehicles. A
+ * successful response can also be empty. An empty response indicates that no
+ * delivery vehicles were found meeting the requested filter criteria.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.DeliveryVehicle delivery_vehicles = 1;
+ * @param array<\Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDeliveryVehicles($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle::class);
+ $this->delivery_vehicles = $arr;
+
+ return $this;
+ }
+
+ /**
+ * You can pass this token in the `ListDeliveryVehiclesRequest` to continue to
+ * list results. When all of the results are returned, this field won't be in
+ * the response, or it will be an empty string.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * You can pass this token in the `ListDeliveryVehiclesRequest` to continue to
+ * list results. When all of the results are returned, this field won't be in
+ * the response, or it will be an empty string.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * The total number of delivery vehicles that match the request criteria,
+ * across all pages.
+ *
+ * Generated from protobuf field int64 total_size = 3;
+ * @return int|string
+ */
+ public function getTotalSize()
+ {
+ return $this->total_size;
+ }
+
+ /**
+ * The total number of delivery vehicles that match the request criteria,
+ * across all pages.
+ *
+ * Generated from protobuf field int64 total_size = 3;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setTotalSize($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->total_size = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/ListTasksRequest.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/ListTasksRequest.php
new file mode 100644
index 000000000000..e23c8d8e365d
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/ListTasksRequest.php
@@ -0,0 +1,273 @@
+maps.fleetengine.delivery.v1.ListTasksRequest
+ */
+class ListTasksRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $header = null;
+ /**
+ * Required. Must be in the format `providers/{provider}`.
+ * The `provider` must be the Google Cloud Project ID. For example,
+ * `sample-cloud-project`.
+ *
+ * Generated from protobuf field string parent = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of Tasks to return. The service may return
+ * fewer than this value. If you don't specify this value, then the server
+ * determines the number of results to return.
+ *
+ * Generated from protobuf field int32 page_size = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. A page token received from a previous `ListTasks` call.
+ * You can provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListTasks` must match
+ * the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+ /**
+ * Optional. A filter query to apply when listing Tasks. See
+ * http://aip.dev/160 for examples of filter syntax. If you don't specify a
+ * value, or if you filter on an empty string, then all Tasks are returned.
+ * For information about the Task properties that you can filter on, see [List
+ * tasks](https://developers.google.com/maps/documentation/mobility/fleet-engine/journeys/tasks/find-tasks#filter_listed_tasks).
+ *
+ * Generated from protobuf field string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+
+ /**
+ * @param string $parent Required. Must be in the format `providers/{provider}`.
+ * The `provider` must be the Google Cloud Project ID. For example,
+ * `sample-cloud-project`. Please see
+ * {@see DeliveryServiceClient::providerName()} for help formatting this field.
+ *
+ * @return \Google\Maps\FleetEngine\Delivery\V1\ListTasksRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $header
+ * Optional. The standard Delivery API request header.
+ * @type string $parent
+ * Required. Must be in the format `providers/{provider}`.
+ * The `provider` must be the Google Cloud Project ID. For example,
+ * `sample-cloud-project`.
+ * @type int $page_size
+ * Optional. The maximum number of Tasks to return. The service may return
+ * fewer than this value. If you don't specify this value, then the server
+ * determines the number of results to return.
+ * @type string $page_token
+ * Optional. A page token received from a previous `ListTasks` call.
+ * You can provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListTasks` must match
+ * the call that provided the page token.
+ * @type string $filter
+ * Optional. A filter query to apply when listing Tasks. See
+ * http://aip.dev/160 for examples of filter syntax. If you don't specify a
+ * value, or if you filter on an empty string, then all Tasks are returned.
+ * For information about the Task properties that you can filter on, see [List
+ * tasks](https://developers.google.com/maps/documentation/mobility/fleet-engine/journeys/tasks/find-tasks#filter_listed_tasks).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryApi::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader|null
+ */
+ public function getHeader()
+ {
+ return $this->header;
+ }
+
+ public function hasHeader()
+ {
+ return isset($this->header);
+ }
+
+ public function clearHeader()
+ {
+ unset($this->header);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $var
+ * @return $this
+ */
+ public function setHeader($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader::class);
+ $this->header = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Must be in the format `providers/{provider}`.
+ * The `provider` must be the Google Cloud Project ID. For example,
+ * `sample-cloud-project`.
+ *
+ * Generated from protobuf field string parent = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Must be in the format `providers/{provider}`.
+ * The `provider` must be the Google Cloud Project ID. For example,
+ * `sample-cloud-project`.
+ *
+ * Generated from protobuf field string parent = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The maximum number of Tasks to return. The service may return
+ * fewer than this value. If you don't specify this value, then the server
+ * determines the number of results to return.
+ *
+ * Generated from protobuf field int32 page_size = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. The maximum number of Tasks to return. The service may return
+ * fewer than this value. If you don't specify this value, then the server
+ * determines the number of results to return.
+ *
+ * Generated from protobuf field int32 page_size = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A page token received from a previous `ListTasks` call.
+ * You can provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListTasks` must match
+ * the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. A page token received from a previous `ListTasks` call.
+ * You can provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListTasks` must match
+ * the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A filter query to apply when listing Tasks. See
+ * http://aip.dev/160 for examples of filter syntax. If you don't specify a
+ * value, or if you filter on an empty string, then all Tasks are returned.
+ * For information about the Task properties that you can filter on, see [List
+ * tasks](https://developers.google.com/maps/documentation/mobility/fleet-engine/journeys/tasks/find-tasks#filter_listed_tasks).
+ *
+ * Generated from protobuf field string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. A filter query to apply when listing Tasks. See
+ * http://aip.dev/160 for examples of filter syntax. If you don't specify a
+ * value, or if you filter on an empty string, then all Tasks are returned.
+ * For information about the Task properties that you can filter on, see [List
+ * tasks](https://developers.google.com/maps/documentation/mobility/fleet-engine/journeys/tasks/find-tasks#filter_listed_tasks).
+ *
+ * Generated from protobuf field string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/ListTasksResponse.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/ListTasksResponse.php
new file mode 100644
index 000000000000..6ff86766b915
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/ListTasksResponse.php
@@ -0,0 +1,160 @@
+maps.fleetengine.delivery.v1.ListTasksResponse
+ */
+class ListTasksResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The set of Tasks that meet the requested filtering criteria. When no filter
+ * is specified, the request returns all tasks. A successful response can also
+ * be empty. An empty response indicates that no Tasks were found meeting the
+ * requested filter criteria.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.Task tasks = 1;
+ */
+ private $tasks;
+ /**
+ * Pass this token in the `ListTasksRequest` to continue to list results.
+ * If all results have been returned, then this field is either an empty
+ * string, or it doesn't appear in the response.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * The total number of Tasks that match the request criteria, across all
+ * pages.
+ *
+ * Generated from protobuf field int64 total_size = 3;
+ */
+ protected $total_size = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Maps\FleetEngine\Delivery\V1\Task>|\Google\Protobuf\Internal\RepeatedField $tasks
+ * The set of Tasks that meet the requested filtering criteria. When no filter
+ * is specified, the request returns all tasks. A successful response can also
+ * be empty. An empty response indicates that no Tasks were found meeting the
+ * requested filter criteria.
+ * @type string $next_page_token
+ * Pass this token in the `ListTasksRequest` to continue to list results.
+ * If all results have been returned, then this field is either an empty
+ * string, or it doesn't appear in the response.
+ * @type int|string $total_size
+ * The total number of Tasks that match the request criteria, across all
+ * pages.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryApi::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The set of Tasks that meet the requested filtering criteria. When no filter
+ * is specified, the request returns all tasks. A successful response can also
+ * be empty. An empty response indicates that no Tasks were found meeting the
+ * requested filter criteria.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.Task tasks = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTasks()
+ {
+ return $this->tasks;
+ }
+
+ /**
+ * The set of Tasks that meet the requested filtering criteria. When no filter
+ * is specified, the request returns all tasks. A successful response can also
+ * be empty. An empty response indicates that no Tasks were found meeting the
+ * requested filter criteria.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.Task tasks = 1;
+ * @param array<\Google\Maps\FleetEngine\Delivery\V1\Task>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTasks($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\FleetEngine\Delivery\V1\Task::class);
+ $this->tasks = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Pass this token in the `ListTasksRequest` to continue to list results.
+ * If all results have been returned, then this field is either an empty
+ * string, or it doesn't appear in the response.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * Pass this token in the `ListTasksRequest` to continue to list results.
+ * If all results have been returned, then this field is either an empty
+ * string, or it doesn't appear in the response.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * The total number of Tasks that match the request criteria, across all
+ * pages.
+ *
+ * Generated from protobuf field int64 total_size = 3;
+ * @return int|string
+ */
+ public function getTotalSize()
+ {
+ return $this->total_size;
+ }
+
+ /**
+ * The total number of Tasks that match the request criteria, across all
+ * pages.
+ *
+ * Generated from protobuf field int64 total_size = 3;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setTotalSize($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->total_size = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/LocationInfo.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/LocationInfo.php
new file mode 100644
index 000000000000..6c8597013b43
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/LocationInfo.php
@@ -0,0 +1,77 @@
+maps.fleetengine.delivery.v1.LocationInfo
+ */
+class LocationInfo extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The location's coordinates.
+ *
+ * Generated from protobuf field .google.type.LatLng point = 1;
+ */
+ protected $point = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Type\LatLng $point
+ * The location's coordinates.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryVehicles::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The location's coordinates.
+ *
+ * Generated from protobuf field .google.type.LatLng point = 1;
+ * @return \Google\Type\LatLng|null
+ */
+ public function getPoint()
+ {
+ return $this->point;
+ }
+
+ public function hasPoint()
+ {
+ return isset($this->point);
+ }
+
+ public function clearPoint()
+ {
+ unset($this->point);
+ }
+
+ /**
+ * The location's coordinates.
+ *
+ * Generated from protobuf field .google.type.LatLng point = 1;
+ * @param \Google\Type\LatLng $var
+ * @return $this
+ */
+ public function setPoint($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\LatLng::class);
+ $this->point = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task.php
new file mode 100644
index 000000000000..66471744ba32
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task.php
@@ -0,0 +1,720 @@
+maps.fleetengine.delivery.v1.Task
+ */
+class Task extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Must be in the format `providers/{provider}/tasks/{task}`.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * Required. Immutable. Defines the type of the Task. For example, a break or
+ * shipment.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.Type type = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $type = 0;
+ /**
+ * Required. The current execution state of the Task.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.State state = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $state = 0;
+ /**
+ * The outcome of the Task.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.TaskOutcome task_outcome = 9;
+ */
+ protected $task_outcome = 0;
+ /**
+ * The timestamp that indicates when the `Task`'s outcome was set by the
+ * provider.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp task_outcome_time = 10;
+ */
+ protected $task_outcome_time = null;
+ /**
+ * The location where the `Task`'s outcome was set. This value is updated as
+ * part of `UpdateTask`. If this value isn't explicitly updated by the
+ * provider, then Fleet Engine populates it by default with the last known
+ * vehicle location (the *raw* location).
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.LocationInfo task_outcome_location = 11;
+ */
+ protected $task_outcome_location = null;
+ /**
+ * Indicates where the value of the `task_outcome_location` came from.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.TaskOutcomeLocationSource task_outcome_location_source = 12;
+ */
+ protected $task_outcome_location_source = 0;
+ /**
+ * Immutable. This field facilitates the storing of an ID so you can avoid
+ * using a complicated mapping. You cannot set `tracking_id` for Tasks of type
+ * `UNAVAILABLE` and `SCHEDULED_STOP`. These IDs are subject to the
+ * following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string tracking_id = 4 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $tracking_id = '';
+ /**
+ * Output only. The ID of the vehicle that is executing this Task. Delivery
+ * Vehicle IDs are subject to the following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string delivery_vehicle_id = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $delivery_vehicle_id = '';
+ /**
+ * Immutable. The location where the Task will be completed.
+ * Optional for `UNAVAILABLE` Tasks, but required for all other Tasks.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.LocationInfo planned_location = 6 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $planned_location = null;
+ /**
+ * Required. Immutable. The time needed to execute a Task at this location.
+ *
+ * Generated from protobuf field .google.protobuf.Duration task_duration = 7 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $task_duration = null;
+ /**
+ * The time window during which the task should be completed.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TimeWindow target_time_window = 14;
+ */
+ protected $target_time_window = null;
+ /**
+ * Output only. Journey sharing-specific fields. Not populated when state is
+ * `CLOSED`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.JourneySharingInfo journey_sharing_info = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $journey_sharing_info = null;
+ /**
+ * The configuration for task tracking that specifies which data elements are
+ * visible to the end users under what circumstances.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig task_tracking_view_config = 13;
+ */
+ protected $task_tracking_view_config = null;
+ /**
+ * A list of custom Task attributes. Each attribute must have a unique key.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.TaskAttribute attributes = 15;
+ */
+ private $attributes;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Must be in the format `providers/{provider}/tasks/{task}`.
+ * @type int $type
+ * Required. Immutable. Defines the type of the Task. For example, a break or
+ * shipment.
+ * @type int $state
+ * Required. The current execution state of the Task.
+ * @type int $task_outcome
+ * The outcome of the Task.
+ * @type \Google\Protobuf\Timestamp $task_outcome_time
+ * The timestamp that indicates when the `Task`'s outcome was set by the
+ * provider.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\LocationInfo $task_outcome_location
+ * The location where the `Task`'s outcome was set. This value is updated as
+ * part of `UpdateTask`. If this value isn't explicitly updated by the
+ * provider, then Fleet Engine populates it by default with the last known
+ * vehicle location (the *raw* location).
+ * @type int $task_outcome_location_source
+ * Indicates where the value of the `task_outcome_location` came from.
+ * @type string $tracking_id
+ * Immutable. This field facilitates the storing of an ID so you can avoid
+ * using a complicated mapping. You cannot set `tracking_id` for Tasks of type
+ * `UNAVAILABLE` and `SCHEDULED_STOP`. These IDs are subject to the
+ * following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ * @type string $delivery_vehicle_id
+ * Output only. The ID of the vehicle that is executing this Task. Delivery
+ * Vehicle IDs are subject to the following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\LocationInfo $planned_location
+ * Immutable. The location where the Task will be completed.
+ * Optional for `UNAVAILABLE` Tasks, but required for all other Tasks.
+ * @type \Google\Protobuf\Duration $task_duration
+ * Required. Immutable. The time needed to execute a Task at this location.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\TimeWindow $target_time_window
+ * The time window during which the task should be completed.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\Task\JourneySharingInfo $journey_sharing_info
+ * Output only. Journey sharing-specific fields. Not populated when state is
+ * `CLOSED`.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig $task_tracking_view_config
+ * The configuration for task tracking that specifies which data elements are
+ * visible to the end users under what circumstances.
+ * @type array<\Google\Maps\FleetEngine\Delivery\V1\TaskAttribute>|\Google\Protobuf\Internal\RepeatedField $attributes
+ * A list of custom Task attributes. Each attribute must have a unique key.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\Tasks::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Must be in the format `providers/{provider}/tasks/{task}`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Must be in the format `providers/{provider}/tasks/{task}`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Immutable. Defines the type of the Task. For example, a break or
+ * shipment.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.Type type = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE];
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Required. Immutable. Defines the type of the Task. For example, a break or
+ * shipment.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.Type type = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE];
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\FleetEngine\Delivery\V1\Task\Type::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The current execution state of the Task.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.State state = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Required. The current execution state of the Task.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.State state = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\FleetEngine\Delivery\V1\Task\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * The outcome of the Task.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.TaskOutcome task_outcome = 9;
+ * @return int
+ */
+ public function getTaskOutcome()
+ {
+ return $this->task_outcome;
+ }
+
+ /**
+ * The outcome of the Task.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.TaskOutcome task_outcome = 9;
+ * @param int $var
+ * @return $this
+ */
+ public function setTaskOutcome($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\FleetEngine\Delivery\V1\Task\TaskOutcome::class);
+ $this->task_outcome = $var;
+
+ return $this;
+ }
+
+ /**
+ * The timestamp that indicates when the `Task`'s outcome was set by the
+ * provider.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp task_outcome_time = 10;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getTaskOutcomeTime()
+ {
+ return $this->task_outcome_time;
+ }
+
+ public function hasTaskOutcomeTime()
+ {
+ return isset($this->task_outcome_time);
+ }
+
+ public function clearTaskOutcomeTime()
+ {
+ unset($this->task_outcome_time);
+ }
+
+ /**
+ * The timestamp that indicates when the `Task`'s outcome was set by the
+ * provider.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp task_outcome_time = 10;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setTaskOutcomeTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->task_outcome_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The location where the `Task`'s outcome was set. This value is updated as
+ * part of `UpdateTask`. If this value isn't explicitly updated by the
+ * provider, then Fleet Engine populates it by default with the last known
+ * vehicle location (the *raw* location).
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.LocationInfo task_outcome_location = 11;
+ * @return \Google\Maps\FleetEngine\Delivery\V1\LocationInfo|null
+ */
+ public function getTaskOutcomeLocation()
+ {
+ return $this->task_outcome_location;
+ }
+
+ public function hasTaskOutcomeLocation()
+ {
+ return isset($this->task_outcome_location);
+ }
+
+ public function clearTaskOutcomeLocation()
+ {
+ unset($this->task_outcome_location);
+ }
+
+ /**
+ * The location where the `Task`'s outcome was set. This value is updated as
+ * part of `UpdateTask`. If this value isn't explicitly updated by the
+ * provider, then Fleet Engine populates it by default with the last known
+ * vehicle location (the *raw* location).
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.LocationInfo task_outcome_location = 11;
+ * @param \Google\Maps\FleetEngine\Delivery\V1\LocationInfo $var
+ * @return $this
+ */
+ public function setTaskOutcomeLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\LocationInfo::class);
+ $this->task_outcome_location = $var;
+
+ return $this;
+ }
+
+ /**
+ * Indicates where the value of the `task_outcome_location` came from.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.TaskOutcomeLocationSource task_outcome_location_source = 12;
+ * @return int
+ */
+ public function getTaskOutcomeLocationSource()
+ {
+ return $this->task_outcome_location_source;
+ }
+
+ /**
+ * Indicates where the value of the `task_outcome_location` came from.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.TaskOutcomeLocationSource task_outcome_location_source = 12;
+ * @param int $var
+ * @return $this
+ */
+ public function setTaskOutcomeLocationSource($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\FleetEngine\Delivery\V1\Task\TaskOutcomeLocationSource::class);
+ $this->task_outcome_location_source = $var;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. This field facilitates the storing of an ID so you can avoid
+ * using a complicated mapping. You cannot set `tracking_id` for Tasks of type
+ * `UNAVAILABLE` and `SCHEDULED_STOP`. These IDs are subject to the
+ * following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string tracking_id = 4 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getTrackingId()
+ {
+ return $this->tracking_id;
+ }
+
+ /**
+ * Immutable. This field facilitates the storing of an ID so you can avoid
+ * using a complicated mapping. You cannot set `tracking_id` for Tasks of type
+ * `UNAVAILABLE` and `SCHEDULED_STOP`. These IDs are subject to the
+ * following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string tracking_id = 4 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setTrackingId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->tracking_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The ID of the vehicle that is executing this Task. Delivery
+ * Vehicle IDs are subject to the following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string delivery_vehicle_id = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getDeliveryVehicleId()
+ {
+ return $this->delivery_vehicle_id;
+ }
+
+ /**
+ * Output only. The ID of the vehicle that is executing this Task. Delivery
+ * Vehicle IDs are subject to the following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string delivery_vehicle_id = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setDeliveryVehicleId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->delivery_vehicle_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The location where the Task will be completed.
+ * Optional for `UNAVAILABLE` Tasks, but required for all other Tasks.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.LocationInfo planned_location = 6 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\LocationInfo|null
+ */
+ public function getPlannedLocation()
+ {
+ return $this->planned_location;
+ }
+
+ public function hasPlannedLocation()
+ {
+ return isset($this->planned_location);
+ }
+
+ public function clearPlannedLocation()
+ {
+ unset($this->planned_location);
+ }
+
+ /**
+ * Immutable. The location where the Task will be completed.
+ * Optional for `UNAVAILABLE` Tasks, but required for all other Tasks.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.LocationInfo planned_location = 6 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\LocationInfo $var
+ * @return $this
+ */
+ public function setPlannedLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\LocationInfo::class);
+ $this->planned_location = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Immutable. The time needed to execute a Task at this location.
+ *
+ * Generated from protobuf field .google.protobuf.Duration task_duration = 7 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE];
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getTaskDuration()
+ {
+ return $this->task_duration;
+ }
+
+ public function hasTaskDuration()
+ {
+ return isset($this->task_duration);
+ }
+
+ public function clearTaskDuration()
+ {
+ unset($this->task_duration);
+ }
+
+ /**
+ * Required. Immutable. The time needed to execute a Task at this location.
+ *
+ * Generated from protobuf field .google.protobuf.Duration task_duration = 7 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE];
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setTaskDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->task_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * The time window during which the task should be completed.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TimeWindow target_time_window = 14;
+ * @return \Google\Maps\FleetEngine\Delivery\V1\TimeWindow|null
+ */
+ public function getTargetTimeWindow()
+ {
+ return $this->target_time_window;
+ }
+
+ public function hasTargetTimeWindow()
+ {
+ return isset($this->target_time_window);
+ }
+
+ public function clearTargetTimeWindow()
+ {
+ unset($this->target_time_window);
+ }
+
+ /**
+ * The time window during which the task should be completed.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TimeWindow target_time_window = 14;
+ * @param \Google\Maps\FleetEngine\Delivery\V1\TimeWindow $var
+ * @return $this
+ */
+ public function setTargetTimeWindow($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\TimeWindow::class);
+ $this->target_time_window = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Journey sharing-specific fields. Not populated when state is
+ * `CLOSED`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.JourneySharingInfo journey_sharing_info = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\Task\JourneySharingInfo|null
+ */
+ public function getJourneySharingInfo()
+ {
+ return $this->journey_sharing_info;
+ }
+
+ public function hasJourneySharingInfo()
+ {
+ return isset($this->journey_sharing_info);
+ }
+
+ public function clearJourneySharingInfo()
+ {
+ unset($this->journey_sharing_info);
+ }
+
+ /**
+ * Output only. Journey sharing-specific fields. Not populated when state is
+ * `CLOSED`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.JourneySharingInfo journey_sharing_info = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\Task\JourneySharingInfo $var
+ * @return $this
+ */
+ public function setJourneySharingInfo($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\Task\JourneySharingInfo::class);
+ $this->journey_sharing_info = $var;
+
+ return $this;
+ }
+
+ /**
+ * The configuration for task tracking that specifies which data elements are
+ * visible to the end users under what circumstances.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig task_tracking_view_config = 13;
+ * @return \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig|null
+ */
+ public function getTaskTrackingViewConfig()
+ {
+ return $this->task_tracking_view_config;
+ }
+
+ public function hasTaskTrackingViewConfig()
+ {
+ return isset($this->task_tracking_view_config);
+ }
+
+ public function clearTaskTrackingViewConfig()
+ {
+ unset($this->task_tracking_view_config);
+ }
+
+ /**
+ * The configuration for task tracking that specifies which data elements are
+ * visible to the end users under what circumstances.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig task_tracking_view_config = 13;
+ * @param \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig $var
+ * @return $this
+ */
+ public function setTaskTrackingViewConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig::class);
+ $this->task_tracking_view_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * A list of custom Task attributes. Each attribute must have a unique key.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.TaskAttribute attributes = 15;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAttributes()
+ {
+ return $this->attributes;
+ }
+
+ /**
+ * A list of custom Task attributes. Each attribute must have a unique key.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.TaskAttribute attributes = 15;
+ * @param array<\Google\Maps\FleetEngine\Delivery\V1\TaskAttribute>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAttributes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\FleetEngine\Delivery\V1\TaskAttribute::class);
+ $this->attributes = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task/JourneySharingInfo.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task/JourneySharingInfo.php
new file mode 100644
index 000000000000..24c3728cd2e5
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task/JourneySharingInfo.php
@@ -0,0 +1,216 @@
+maps.fleetengine.delivery.v1.Task.JourneySharingInfo
+ */
+class JourneySharingInfo extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Tracking information for the stops that the assigned vehicle will make
+ * before it completes this Task. Note that this list can contain stops
+ * from other tasks.
+ * The first segment,
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments[0]` (gRPC)
+ * or `Task.journeySharingInfo.remainingVehicleJourneySegments[0]` (REST),
+ * contains route information from the driver's last known location to the
+ * upcoming `VehicleStop`. Current route information usually comes from the
+ * driver app, except for some cases noted in the documentation for
+ * [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment].
+ * The other segments in
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments` (gRPC) or
+ * `Task.journeySharingInfo.remainingVehicleJourneySegments` (REST) are
+ * populated by Fleet Engine. They provide route information between the
+ * remaining `VehicleStops`.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.VehicleJourneySegment remaining_vehicle_journey_segments = 1;
+ */
+ private $remaining_vehicle_journey_segments;
+ /**
+ * Indicates the vehicle's last reported location of the assigned vehicle.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocation last_location = 2;
+ */
+ protected $last_location = null;
+ /**
+ * Indicates whether the vehicle's lastLocation can be snapped to
+ * the `current_route_segment`. This value is False if either
+ * `last_location` or `current_route_segment` don't exist. This value is
+ * computed by Fleet Engine. Updates from clients are ignored.
+ *
+ * Generated from protobuf field bool last_location_snappable = 3;
+ */
+ protected $last_location_snappable = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Maps\FleetEngine\Delivery\V1\VehicleJourneySegment>|\Google\Protobuf\Internal\RepeatedField $remaining_vehicle_journey_segments
+ * Tracking information for the stops that the assigned vehicle will make
+ * before it completes this Task. Note that this list can contain stops
+ * from other tasks.
+ * The first segment,
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments[0]` (gRPC)
+ * or `Task.journeySharingInfo.remainingVehicleJourneySegments[0]` (REST),
+ * contains route information from the driver's last known location to the
+ * upcoming `VehicleStop`. Current route information usually comes from the
+ * driver app, except for some cases noted in the documentation for
+ * [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment].
+ * The other segments in
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments` (gRPC) or
+ * `Task.journeySharingInfo.remainingVehicleJourneySegments` (REST) are
+ * populated by Fleet Engine. They provide route information between the
+ * remaining `VehicleStops`.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleLocation $last_location
+ * Indicates the vehicle's last reported location of the assigned vehicle.
+ * @type bool $last_location_snappable
+ * Indicates whether the vehicle's lastLocation can be snapped to
+ * the `current_route_segment`. This value is False if either
+ * `last_location` or `current_route_segment` don't exist. This value is
+ * computed by Fleet Engine. Updates from clients are ignored.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\Tasks::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Tracking information for the stops that the assigned vehicle will make
+ * before it completes this Task. Note that this list can contain stops
+ * from other tasks.
+ * The first segment,
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments[0]` (gRPC)
+ * or `Task.journeySharingInfo.remainingVehicleJourneySegments[0]` (REST),
+ * contains route information from the driver's last known location to the
+ * upcoming `VehicleStop`. Current route information usually comes from the
+ * driver app, except for some cases noted in the documentation for
+ * [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment].
+ * The other segments in
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments` (gRPC) or
+ * `Task.journeySharingInfo.remainingVehicleJourneySegments` (REST) are
+ * populated by Fleet Engine. They provide route information between the
+ * remaining `VehicleStops`.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.VehicleJourneySegment remaining_vehicle_journey_segments = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRemainingVehicleJourneySegments()
+ {
+ return $this->remaining_vehicle_journey_segments;
+ }
+
+ /**
+ * Tracking information for the stops that the assigned vehicle will make
+ * before it completes this Task. Note that this list can contain stops
+ * from other tasks.
+ * The first segment,
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments[0]` (gRPC)
+ * or `Task.journeySharingInfo.remainingVehicleJourneySegments[0]` (REST),
+ * contains route information from the driver's last known location to the
+ * upcoming `VehicleStop`. Current route information usually comes from the
+ * driver app, except for some cases noted in the documentation for
+ * [DeliveryVehicle.current_route_segment][maps.fleetengine.delivery.v1.DeliveryVehicle.current_route_segment].
+ * The other segments in
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments` (gRPC) or
+ * `Task.journeySharingInfo.remainingVehicleJourneySegments` (REST) are
+ * populated by Fleet Engine. They provide route information between the
+ * remaining `VehicleStops`.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.VehicleJourneySegment remaining_vehicle_journey_segments = 1;
+ * @param array<\Google\Maps\FleetEngine\Delivery\V1\VehicleJourneySegment>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRemainingVehicleJourneySegments($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\FleetEngine\Delivery\V1\VehicleJourneySegment::class);
+ $this->remaining_vehicle_journey_segments = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Indicates the vehicle's last reported location of the assigned vehicle.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocation last_location = 2;
+ * @return \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleLocation|null
+ */
+ public function getLastLocation()
+ {
+ return $this->last_location;
+ }
+
+ public function hasLastLocation()
+ {
+ return isset($this->last_location);
+ }
+
+ public function clearLastLocation()
+ {
+ unset($this->last_location);
+ }
+
+ /**
+ * Indicates the vehicle's last reported location of the assigned vehicle.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocation last_location = 2;
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleLocation $var
+ * @return $this
+ */
+ public function setLastLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleLocation::class);
+ $this->last_location = $var;
+
+ return $this;
+ }
+
+ /**
+ * Indicates whether the vehicle's lastLocation can be snapped to
+ * the `current_route_segment`. This value is False if either
+ * `last_location` or `current_route_segment` don't exist. This value is
+ * computed by Fleet Engine. Updates from clients are ignored.
+ *
+ * Generated from protobuf field bool last_location_snappable = 3;
+ * @return bool
+ */
+ public function getLastLocationSnappable()
+ {
+ return $this->last_location_snappable;
+ }
+
+ /**
+ * Indicates whether the vehicle's lastLocation can be snapped to
+ * the `current_route_segment`. This value is False if either
+ * `last_location` or `current_route_segment` don't exist. This value is
+ * computed by Fleet Engine. Updates from clients are ignored.
+ *
+ * Generated from protobuf field bool last_location_snappable = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setLastLocationSnappable($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->last_location_snappable = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(JourneySharingInfo::class, \Google\Maps\FleetEngine\Delivery\V1\Task_JourneySharingInfo::class);
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task/State.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task/State.php
new file mode 100644
index 000000000000..8ad698087d0f
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task/State.php
@@ -0,0 +1,65 @@
+maps.fleetengine.delivery.v1.Task.State
+ */
+class State
+{
+ /**
+ * Default. Used for an unspecified or unrecognized Task state.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * Either the Task has not yet been assigned to a delivery vehicle, or the
+ * delivery vehicle has not yet passed the `Task`'s assigned vehicle stop.
+ *
+ * Generated from protobuf enum OPEN = 1;
+ */
+ const OPEN = 1;
+ /**
+ * When the vehicle passes the vehicle stop for this Task.
+ *
+ * Generated from protobuf enum CLOSED = 2;
+ */
+ const CLOSED = 2;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::OPEN => 'OPEN',
+ self::CLOSED => 'CLOSED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(State::class, \Google\Maps\FleetEngine\Delivery\V1\Task_State::class);
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task/TaskOutcome.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task/TaskOutcome.php
new file mode 100644
index 000000000000..9c9af30335ba
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task/TaskOutcome.php
@@ -0,0 +1,65 @@
+maps.fleetengine.delivery.v1.Task.TaskOutcome
+ */
+class TaskOutcome
+{
+ /**
+ * The Task outcome before its value is set.
+ *
+ * Generated from protobuf enum TASK_OUTCOME_UNSPECIFIED = 0;
+ */
+ const TASK_OUTCOME_UNSPECIFIED = 0;
+ /**
+ * The Task completed successfully.
+ *
+ * Generated from protobuf enum SUCCEEDED = 1;
+ */
+ const SUCCEEDED = 1;
+ /**
+ * Either the Task couldn't be completed, or it was cancelled.
+ *
+ * Generated from protobuf enum FAILED = 2;
+ */
+ const FAILED = 2;
+
+ private static $valueToName = [
+ self::TASK_OUTCOME_UNSPECIFIED => 'TASK_OUTCOME_UNSPECIFIED',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::FAILED => 'FAILED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(TaskOutcome::class, \Google\Maps\FleetEngine\Delivery\V1\Task_TaskOutcome::class);
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task/TaskOutcomeLocationSource.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task/TaskOutcomeLocationSource.php
new file mode 100644
index 000000000000..c5b2d9d5e23c
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task/TaskOutcomeLocationSource.php
@@ -0,0 +1,65 @@
+maps.fleetengine.delivery.v1.Task.TaskOutcomeLocationSource
+ */
+class TaskOutcomeLocationSource
+{
+ /**
+ * The task outcome before it is set.
+ *
+ * Generated from protobuf enum TASK_OUTCOME_LOCATION_SOURCE_UNSPECIFIED = 0;
+ */
+ const TASK_OUTCOME_LOCATION_SOURCE_UNSPECIFIED = 0;
+ /**
+ * The provider-specified the `task_outcome_location`.
+ *
+ * Generated from protobuf enum PROVIDER = 2;
+ */
+ const PROVIDER = 2;
+ /**
+ * The provider didn't specify the `task_outcome_location`, so Fleet Engine
+ * used the last known vehicle location.
+ *
+ * Generated from protobuf enum LAST_VEHICLE_LOCATION = 3;
+ */
+ const LAST_VEHICLE_LOCATION = 3;
+
+ private static $valueToName = [
+ self::TASK_OUTCOME_LOCATION_SOURCE_UNSPECIFIED => 'TASK_OUTCOME_LOCATION_SOURCE_UNSPECIFIED',
+ self::PROVIDER => 'PROVIDER',
+ self::LAST_VEHICLE_LOCATION => 'LAST_VEHICLE_LOCATION',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(TaskOutcomeLocationSource::class, \Google\Maps\FleetEngine\Delivery\V1\Task_TaskOutcomeLocationSource::class);
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task/Type.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task/Type.php
new file mode 100644
index 000000000000..a4e6bb2b1965
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/Task/Type.php
@@ -0,0 +1,87 @@
+maps.fleetengine.delivery.v1.Task.Type
+ */
+class Type
+{
+ /**
+ * Default, the Task type is unknown.
+ *
+ * Generated from protobuf enum TYPE_UNSPECIFIED = 0;
+ */
+ const TYPE_UNSPECIFIED = 0;
+ /**
+ * A pickup Task is the action taken for picking up a shipment from a
+ * customer. Depot or feeder vehicle pickups should use the `SCHEDULED_STOP`
+ * type.
+ *
+ * Generated from protobuf enum PICKUP = 1;
+ */
+ const PICKUP = 1;
+ /**
+ * A delivery Task is the action taken for delivering a shipment to an end
+ * customer. Depot or feeder vehicle dropoffs should use the
+ * `SCHEDULED_STOP` type.
+ *
+ * Generated from protobuf enum DELIVERY = 2;
+ */
+ const DELIVERY = 2;
+ /**
+ * A scheduled stop Task is used for planning purposes. For example, it
+ * could represent picking up or dropping off shipments from feeder vehicles
+ * or depots. It shouldn't be used for any shipments that are picked up or
+ * dropped off from an end customer.
+ *
+ * Generated from protobuf enum SCHEDULED_STOP = 3;
+ */
+ const SCHEDULED_STOP = 3;
+ /**
+ * A Task that means the Vehicle is not available for service. For example,
+ * this can happen when the driver takes a break, or when the vehicle
+ * is being refueled.
+ *
+ * Generated from protobuf enum UNAVAILABLE = 4;
+ */
+ const UNAVAILABLE = 4;
+
+ private static $valueToName = [
+ self::TYPE_UNSPECIFIED => 'TYPE_UNSPECIFIED',
+ self::PICKUP => 'PICKUP',
+ self::DELIVERY => 'DELIVERY',
+ self::SCHEDULED_STOP => 'SCHEDULED_STOP',
+ self::UNAVAILABLE => 'UNAVAILABLE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Type::class, \Google\Maps\FleetEngine\Delivery\V1\Task_Type::class);
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/TaskAttribute.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/TaskAttribute.php
new file mode 100644
index 000000000000..f5fba7a3cea3
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/TaskAttribute.php
@@ -0,0 +1,176 @@
+maps.fleetengine.delivery.v1.TaskAttribute
+ */
+class TaskAttribute extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The attribute's key. Keys may not contain the colon character (:).
+ *
+ * Generated from protobuf field string key = 1;
+ */
+ protected $key = '';
+ protected $task_attribute_value;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $key
+ * The attribute's key. Keys may not contain the colon character (:).
+ * @type string $string_value
+ * String typed attribute value.
+ * @type bool $bool_value
+ * Boolean typed attribute value.
+ * @type float $number_value
+ * Double typed attribute value.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\Common::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The attribute's key. Keys may not contain the colon character (:).
+ *
+ * Generated from protobuf field string key = 1;
+ * @return string
+ */
+ public function getKey()
+ {
+ return $this->key;
+ }
+
+ /**
+ * The attribute's key. Keys may not contain the colon character (:).
+ *
+ * Generated from protobuf field string key = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setKey($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->key = $var;
+
+ return $this;
+ }
+
+ /**
+ * String typed attribute value.
+ *
+ * Generated from protobuf field string string_value = 2;
+ * @return string
+ */
+ public function getStringValue()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasStringValue()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * String typed attribute value.
+ *
+ * Generated from protobuf field string string_value = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setStringValue($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Boolean typed attribute value.
+ *
+ * Generated from protobuf field bool bool_value = 3;
+ * @return bool
+ */
+ public function getBoolValue()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasBoolValue()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Boolean typed attribute value.
+ *
+ * Generated from protobuf field bool bool_value = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setBoolValue($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Double typed attribute value.
+ *
+ * Generated from protobuf field double number_value = 4;
+ * @return float
+ */
+ public function getNumberValue()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasNumberValue()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Double typed attribute value.
+ *
+ * Generated from protobuf field double number_value = 4;
+ * @param float $var
+ * @return $this
+ */
+ public function setNumberValue($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getTaskAttributeValue()
+ {
+ return $this->whichOneof("task_attribute_value");
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/TaskTrackingInfo.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/TaskTrackingInfo.php
new file mode 100644
index 000000000000..66383f156e70
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/TaskTrackingInfo.php
@@ -0,0 +1,698 @@
+maps.fleetengine.delivery.v1.TaskTrackingInfo
+ */
+class TaskTrackingInfo extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Must be in the format `providers/{provider}/taskTrackingInfo/{tracking}`,
+ * where `tracking` represents the tracking ID.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * Immutable. The tracking ID of a Task.
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string tracking_id = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $tracking_id = '';
+ /**
+ * The vehicle's last location.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocation vehicle_location = 3;
+ */
+ protected $vehicle_location = null;
+ /**
+ * A list of points which when connected forms a polyline of the vehicle's
+ * expected route to the location of this task.
+ *
+ * Generated from protobuf field repeated .google.type.LatLng route_polyline_points = 4;
+ */
+ private $route_polyline_points;
+ /**
+ * Indicates the number of stops the vehicle remaining until the task stop is
+ * reached, including the task stop. For example, if the vehicle's next stop
+ * is the task stop, the value will be 1.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value remaining_stop_count = 5;
+ */
+ protected $remaining_stop_count = null;
+ /**
+ * The total remaining distance in meters to the `VehicleStop` of interest.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value remaining_driving_distance_meters = 6;
+ */
+ protected $remaining_driving_distance_meters = null;
+ /**
+ * The timestamp that indicates the estimated arrival time to the stop
+ * location.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp estimated_arrival_time = 7;
+ */
+ protected $estimated_arrival_time = null;
+ /**
+ * The timestamp that indicates the estimated completion time of a Task.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp estimated_task_completion_time = 8;
+ */
+ protected $estimated_task_completion_time = null;
+ /**
+ * The current execution state of the Task.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.State state = 11;
+ */
+ protected $state = 0;
+ /**
+ * The outcome of attempting to execute a Task.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.TaskOutcome task_outcome = 9;
+ */
+ protected $task_outcome = 0;
+ /**
+ * The timestamp that indicates when the Task's outcome was set by the
+ * provider.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp task_outcome_time = 12;
+ */
+ protected $task_outcome_time = null;
+ /**
+ * Immutable. The location where the Task will be completed.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.LocationInfo planned_location = 10 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $planned_location = null;
+ /**
+ * The time window during which the task should be completed.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TimeWindow target_time_window = 13;
+ */
+ protected $target_time_window = null;
+ /**
+ * The custom attributes set on the task.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.TaskAttribute attributes = 14;
+ */
+ private $attributes;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Must be in the format `providers/{provider}/taskTrackingInfo/{tracking}`,
+ * where `tracking` represents the tracking ID.
+ * @type string $tracking_id
+ * Immutable. The tracking ID of a Task.
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleLocation $vehicle_location
+ * The vehicle's last location.
+ * @type array<\Google\Type\LatLng>|\Google\Protobuf\Internal\RepeatedField $route_polyline_points
+ * A list of points which when connected forms a polyline of the vehicle's
+ * expected route to the location of this task.
+ * @type \Google\Protobuf\Int32Value $remaining_stop_count
+ * Indicates the number of stops the vehicle remaining until the task stop is
+ * reached, including the task stop. For example, if the vehicle's next stop
+ * is the task stop, the value will be 1.
+ * @type \Google\Protobuf\Int32Value $remaining_driving_distance_meters
+ * The total remaining distance in meters to the `VehicleStop` of interest.
+ * @type \Google\Protobuf\Timestamp $estimated_arrival_time
+ * The timestamp that indicates the estimated arrival time to the stop
+ * location.
+ * @type \Google\Protobuf\Timestamp $estimated_task_completion_time
+ * The timestamp that indicates the estimated completion time of a Task.
+ * @type int $state
+ * The current execution state of the Task.
+ * @type int $task_outcome
+ * The outcome of attempting to execute a Task.
+ * @type \Google\Protobuf\Timestamp $task_outcome_time
+ * The timestamp that indicates when the Task's outcome was set by the
+ * provider.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\LocationInfo $planned_location
+ * Immutable. The location where the Task will be completed.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\TimeWindow $target_time_window
+ * The time window during which the task should be completed.
+ * @type array<\Google\Maps\FleetEngine\Delivery\V1\TaskAttribute>|\Google\Protobuf\Internal\RepeatedField $attributes
+ * The custom attributes set on the task.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\TaskTrackingInfo::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Must be in the format `providers/{provider}/taskTrackingInfo/{tracking}`,
+ * where `tracking` represents the tracking ID.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Must be in the format `providers/{provider}/taskTrackingInfo/{tracking}`,
+ * where `tracking` represents the tracking ID.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The tracking ID of a Task.
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string tracking_id = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getTrackingId()
+ {
+ return $this->tracking_id;
+ }
+
+ /**
+ * Immutable. The tracking ID of a Task.
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string tracking_id = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setTrackingId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->tracking_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The vehicle's last location.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocation vehicle_location = 3;
+ * @return \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleLocation|null
+ */
+ public function getVehicleLocation()
+ {
+ return $this->vehicle_location;
+ }
+
+ public function hasVehicleLocation()
+ {
+ return isset($this->vehicle_location);
+ }
+
+ public function clearVehicleLocation()
+ {
+ unset($this->vehicle_location);
+ }
+
+ /**
+ * The vehicle's last location.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicleLocation vehicle_location = 3;
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleLocation $var
+ * @return $this
+ */
+ public function setVehicleLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicleLocation::class);
+ $this->vehicle_location = $var;
+
+ return $this;
+ }
+
+ /**
+ * A list of points which when connected forms a polyline of the vehicle's
+ * expected route to the location of this task.
+ *
+ * Generated from protobuf field repeated .google.type.LatLng route_polyline_points = 4;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRoutePolylinePoints()
+ {
+ return $this->route_polyline_points;
+ }
+
+ /**
+ * A list of points which when connected forms a polyline of the vehicle's
+ * expected route to the location of this task.
+ *
+ * Generated from protobuf field repeated .google.type.LatLng route_polyline_points = 4;
+ * @param array<\Google\Type\LatLng>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRoutePolylinePoints($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Type\LatLng::class);
+ $this->route_polyline_points = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Indicates the number of stops the vehicle remaining until the task stop is
+ * reached, including the task stop. For example, if the vehicle's next stop
+ * is the task stop, the value will be 1.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value remaining_stop_count = 5;
+ * @return \Google\Protobuf\Int32Value|null
+ */
+ public function getRemainingStopCount()
+ {
+ return $this->remaining_stop_count;
+ }
+
+ public function hasRemainingStopCount()
+ {
+ return isset($this->remaining_stop_count);
+ }
+
+ public function clearRemainingStopCount()
+ {
+ unset($this->remaining_stop_count);
+ }
+
+ /**
+ * Returns the unboxed value from getRemainingStopCount()
+
+ * Indicates the number of stops the vehicle remaining until the task stop is
+ * reached, including the task stop. For example, if the vehicle's next stop
+ * is the task stop, the value will be 1.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value remaining_stop_count = 5;
+ * @return int|null
+ */
+ public function getRemainingStopCountUnwrapped()
+ {
+ return $this->readWrapperValue("remaining_stop_count");
+ }
+
+ /**
+ * Indicates the number of stops the vehicle remaining until the task stop is
+ * reached, including the task stop. For example, if the vehicle's next stop
+ * is the task stop, the value will be 1.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value remaining_stop_count = 5;
+ * @param \Google\Protobuf\Int32Value $var
+ * @return $this
+ */
+ public function setRemainingStopCount($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Int32Value::class);
+ $this->remaining_stop_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\Int32Value object.
+
+ * Indicates the number of stops the vehicle remaining until the task stop is
+ * reached, including the task stop. For example, if the vehicle's next stop
+ * is the task stop, the value will be 1.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value remaining_stop_count = 5;
+ * @param int|null $var
+ * @return $this
+ */
+ public function setRemainingStopCountUnwrapped($var)
+ {
+ $this->writeWrapperValue("remaining_stop_count", $var);
+ return $this;}
+
+ /**
+ * The total remaining distance in meters to the `VehicleStop` of interest.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value remaining_driving_distance_meters = 6;
+ * @return \Google\Protobuf\Int32Value|null
+ */
+ public function getRemainingDrivingDistanceMeters()
+ {
+ return $this->remaining_driving_distance_meters;
+ }
+
+ public function hasRemainingDrivingDistanceMeters()
+ {
+ return isset($this->remaining_driving_distance_meters);
+ }
+
+ public function clearRemainingDrivingDistanceMeters()
+ {
+ unset($this->remaining_driving_distance_meters);
+ }
+
+ /**
+ * Returns the unboxed value from getRemainingDrivingDistanceMeters()
+
+ * The total remaining distance in meters to the `VehicleStop` of interest.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value remaining_driving_distance_meters = 6;
+ * @return int|null
+ */
+ public function getRemainingDrivingDistanceMetersUnwrapped()
+ {
+ return $this->readWrapperValue("remaining_driving_distance_meters");
+ }
+
+ /**
+ * The total remaining distance in meters to the `VehicleStop` of interest.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value remaining_driving_distance_meters = 6;
+ * @param \Google\Protobuf\Int32Value $var
+ * @return $this
+ */
+ public function setRemainingDrivingDistanceMeters($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Int32Value::class);
+ $this->remaining_driving_distance_meters = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\Int32Value object.
+
+ * The total remaining distance in meters to the `VehicleStop` of interest.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value remaining_driving_distance_meters = 6;
+ * @param int|null $var
+ * @return $this
+ */
+ public function setRemainingDrivingDistanceMetersUnwrapped($var)
+ {
+ $this->writeWrapperValue("remaining_driving_distance_meters", $var);
+ return $this;}
+
+ /**
+ * The timestamp that indicates the estimated arrival time to the stop
+ * location.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp estimated_arrival_time = 7;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEstimatedArrivalTime()
+ {
+ return $this->estimated_arrival_time;
+ }
+
+ public function hasEstimatedArrivalTime()
+ {
+ return isset($this->estimated_arrival_time);
+ }
+
+ public function clearEstimatedArrivalTime()
+ {
+ unset($this->estimated_arrival_time);
+ }
+
+ /**
+ * The timestamp that indicates the estimated arrival time to the stop
+ * location.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp estimated_arrival_time = 7;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEstimatedArrivalTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->estimated_arrival_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The timestamp that indicates the estimated completion time of a Task.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp estimated_task_completion_time = 8;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEstimatedTaskCompletionTime()
+ {
+ return $this->estimated_task_completion_time;
+ }
+
+ public function hasEstimatedTaskCompletionTime()
+ {
+ return isset($this->estimated_task_completion_time);
+ }
+
+ public function clearEstimatedTaskCompletionTime()
+ {
+ unset($this->estimated_task_completion_time);
+ }
+
+ /**
+ * The timestamp that indicates the estimated completion time of a Task.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp estimated_task_completion_time = 8;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEstimatedTaskCompletionTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->estimated_task_completion_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The current execution state of the Task.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.State state = 11;
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * The current execution state of the Task.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.State state = 11;
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\FleetEngine\Delivery\V1\Task\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * The outcome of attempting to execute a Task.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.TaskOutcome task_outcome = 9;
+ * @return int
+ */
+ public function getTaskOutcome()
+ {
+ return $this->task_outcome;
+ }
+
+ /**
+ * The outcome of attempting to execute a Task.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task.TaskOutcome task_outcome = 9;
+ * @param int $var
+ * @return $this
+ */
+ public function setTaskOutcome($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\FleetEngine\Delivery\V1\Task\TaskOutcome::class);
+ $this->task_outcome = $var;
+
+ return $this;
+ }
+
+ /**
+ * The timestamp that indicates when the Task's outcome was set by the
+ * provider.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp task_outcome_time = 12;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getTaskOutcomeTime()
+ {
+ return $this->task_outcome_time;
+ }
+
+ public function hasTaskOutcomeTime()
+ {
+ return isset($this->task_outcome_time);
+ }
+
+ public function clearTaskOutcomeTime()
+ {
+ unset($this->task_outcome_time);
+ }
+
+ /**
+ * The timestamp that indicates when the Task's outcome was set by the
+ * provider.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp task_outcome_time = 12;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setTaskOutcomeTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->task_outcome_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The location where the Task will be completed.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.LocationInfo planned_location = 10 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\LocationInfo|null
+ */
+ public function getPlannedLocation()
+ {
+ return $this->planned_location;
+ }
+
+ public function hasPlannedLocation()
+ {
+ return isset($this->planned_location);
+ }
+
+ public function clearPlannedLocation()
+ {
+ unset($this->planned_location);
+ }
+
+ /**
+ * Immutable. The location where the Task will be completed.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.LocationInfo planned_location = 10 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\LocationInfo $var
+ * @return $this
+ */
+ public function setPlannedLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\LocationInfo::class);
+ $this->planned_location = $var;
+
+ return $this;
+ }
+
+ /**
+ * The time window during which the task should be completed.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TimeWindow target_time_window = 13;
+ * @return \Google\Maps\FleetEngine\Delivery\V1\TimeWindow|null
+ */
+ public function getTargetTimeWindow()
+ {
+ return $this->target_time_window;
+ }
+
+ public function hasTargetTimeWindow()
+ {
+ return isset($this->target_time_window);
+ }
+
+ public function clearTargetTimeWindow()
+ {
+ unset($this->target_time_window);
+ }
+
+ /**
+ * The time window during which the task should be completed.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TimeWindow target_time_window = 13;
+ * @param \Google\Maps\FleetEngine\Delivery\V1\TimeWindow $var
+ * @return $this
+ */
+ public function setTargetTimeWindow($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\TimeWindow::class);
+ $this->target_time_window = $var;
+
+ return $this;
+ }
+
+ /**
+ * The custom attributes set on the task.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.TaskAttribute attributes = 14;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAttributes()
+ {
+ return $this->attributes;
+ }
+
+ /**
+ * The custom attributes set on the task.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.TaskAttribute attributes = 14;
+ * @param array<\Google\Maps\FleetEngine\Delivery\V1\TaskAttribute>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAttributes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\FleetEngine\Delivery\V1\TaskAttribute::class);
+ $this->attributes = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/TaskTrackingViewConfig.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/TaskTrackingViewConfig.php
new file mode 100644
index 000000000000..0c3036b3dc7f
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/TaskTrackingViewConfig.php
@@ -0,0 +1,346 @@
+maps.fleetengine.delivery.v1.TaskTrackingViewConfig
+ */
+class TaskTrackingViewConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The field that specifies when route polyline points can be visible. If this
+ * field is not specified, the project level default visibility configuration
+ * for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption route_polyline_points_visibility = 1;
+ */
+ protected $route_polyline_points_visibility = null;
+ /**
+ * The field that specifies when estimated arrival time can be visible. If
+ * this field is not specified, the project level default visibility
+ * configuration for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption estimated_arrival_time_visibility = 2;
+ */
+ protected $estimated_arrival_time_visibility = null;
+ /**
+ * The field that specifies when estimated task completion time can be
+ * visible. If this field is not specified, the project level default
+ * visibility configuration for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption estimated_task_completion_time_visibility = 3;
+ */
+ protected $estimated_task_completion_time_visibility = null;
+ /**
+ * The field that specifies when remaining driving distance can be visible. If
+ * this field is not specified, the project level default visibility
+ * configuration for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption remaining_driving_distance_visibility = 4;
+ */
+ protected $remaining_driving_distance_visibility = null;
+ /**
+ * The field that specifies when remaining stop count can be visible. If this
+ * field is not specified, the project level default visibility configuration
+ * for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption remaining_stop_count_visibility = 5;
+ */
+ protected $remaining_stop_count_visibility = null;
+ /**
+ * The field that specifies when vehicle location can be visible. If this
+ * field is not specified, the project level default visibility configuration
+ * for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption vehicle_location_visibility = 6;
+ */
+ protected $vehicle_location_visibility = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption $route_polyline_points_visibility
+ * The field that specifies when route polyline points can be visible. If this
+ * field is not specified, the project level default visibility configuration
+ * for this data will be used.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption $estimated_arrival_time_visibility
+ * The field that specifies when estimated arrival time can be visible. If
+ * this field is not specified, the project level default visibility
+ * configuration for this data will be used.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption $estimated_task_completion_time_visibility
+ * The field that specifies when estimated task completion time can be
+ * visible. If this field is not specified, the project level default
+ * visibility configuration for this data will be used.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption $remaining_driving_distance_visibility
+ * The field that specifies when remaining driving distance can be visible. If
+ * this field is not specified, the project level default visibility
+ * configuration for this data will be used.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption $remaining_stop_count_visibility
+ * The field that specifies when remaining stop count can be visible. If this
+ * field is not specified, the project level default visibility configuration
+ * for this data will be used.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption $vehicle_location_visibility
+ * The field that specifies when vehicle location can be visible. If this
+ * field is not specified, the project level default visibility configuration
+ * for this data will be used.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\Tasks::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The field that specifies when route polyline points can be visible. If this
+ * field is not specified, the project level default visibility configuration
+ * for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption route_polyline_points_visibility = 1;
+ * @return \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption|null
+ */
+ public function getRoutePolylinePointsVisibility()
+ {
+ return $this->route_polyline_points_visibility;
+ }
+
+ public function hasRoutePolylinePointsVisibility()
+ {
+ return isset($this->route_polyline_points_visibility);
+ }
+
+ public function clearRoutePolylinePointsVisibility()
+ {
+ unset($this->route_polyline_points_visibility);
+ }
+
+ /**
+ * The field that specifies when route polyline points can be visible. If this
+ * field is not specified, the project level default visibility configuration
+ * for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption route_polyline_points_visibility = 1;
+ * @param \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption $var
+ * @return $this
+ */
+ public function setRoutePolylinePointsVisibility($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption::class);
+ $this->route_polyline_points_visibility = $var;
+
+ return $this;
+ }
+
+ /**
+ * The field that specifies when estimated arrival time can be visible. If
+ * this field is not specified, the project level default visibility
+ * configuration for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption estimated_arrival_time_visibility = 2;
+ * @return \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption|null
+ */
+ public function getEstimatedArrivalTimeVisibility()
+ {
+ return $this->estimated_arrival_time_visibility;
+ }
+
+ public function hasEstimatedArrivalTimeVisibility()
+ {
+ return isset($this->estimated_arrival_time_visibility);
+ }
+
+ public function clearEstimatedArrivalTimeVisibility()
+ {
+ unset($this->estimated_arrival_time_visibility);
+ }
+
+ /**
+ * The field that specifies when estimated arrival time can be visible. If
+ * this field is not specified, the project level default visibility
+ * configuration for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption estimated_arrival_time_visibility = 2;
+ * @param \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption $var
+ * @return $this
+ */
+ public function setEstimatedArrivalTimeVisibility($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption::class);
+ $this->estimated_arrival_time_visibility = $var;
+
+ return $this;
+ }
+
+ /**
+ * The field that specifies when estimated task completion time can be
+ * visible. If this field is not specified, the project level default
+ * visibility configuration for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption estimated_task_completion_time_visibility = 3;
+ * @return \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption|null
+ */
+ public function getEstimatedTaskCompletionTimeVisibility()
+ {
+ return $this->estimated_task_completion_time_visibility;
+ }
+
+ public function hasEstimatedTaskCompletionTimeVisibility()
+ {
+ return isset($this->estimated_task_completion_time_visibility);
+ }
+
+ public function clearEstimatedTaskCompletionTimeVisibility()
+ {
+ unset($this->estimated_task_completion_time_visibility);
+ }
+
+ /**
+ * The field that specifies when estimated task completion time can be
+ * visible. If this field is not specified, the project level default
+ * visibility configuration for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption estimated_task_completion_time_visibility = 3;
+ * @param \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption $var
+ * @return $this
+ */
+ public function setEstimatedTaskCompletionTimeVisibility($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption::class);
+ $this->estimated_task_completion_time_visibility = $var;
+
+ return $this;
+ }
+
+ /**
+ * The field that specifies when remaining driving distance can be visible. If
+ * this field is not specified, the project level default visibility
+ * configuration for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption remaining_driving_distance_visibility = 4;
+ * @return \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption|null
+ */
+ public function getRemainingDrivingDistanceVisibility()
+ {
+ return $this->remaining_driving_distance_visibility;
+ }
+
+ public function hasRemainingDrivingDistanceVisibility()
+ {
+ return isset($this->remaining_driving_distance_visibility);
+ }
+
+ public function clearRemainingDrivingDistanceVisibility()
+ {
+ unset($this->remaining_driving_distance_visibility);
+ }
+
+ /**
+ * The field that specifies when remaining driving distance can be visible. If
+ * this field is not specified, the project level default visibility
+ * configuration for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption remaining_driving_distance_visibility = 4;
+ * @param \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption $var
+ * @return $this
+ */
+ public function setRemainingDrivingDistanceVisibility($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption::class);
+ $this->remaining_driving_distance_visibility = $var;
+
+ return $this;
+ }
+
+ /**
+ * The field that specifies when remaining stop count can be visible. If this
+ * field is not specified, the project level default visibility configuration
+ * for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption remaining_stop_count_visibility = 5;
+ * @return \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption|null
+ */
+ public function getRemainingStopCountVisibility()
+ {
+ return $this->remaining_stop_count_visibility;
+ }
+
+ public function hasRemainingStopCountVisibility()
+ {
+ return isset($this->remaining_stop_count_visibility);
+ }
+
+ public function clearRemainingStopCountVisibility()
+ {
+ unset($this->remaining_stop_count_visibility);
+ }
+
+ /**
+ * The field that specifies when remaining stop count can be visible. If this
+ * field is not specified, the project level default visibility configuration
+ * for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption remaining_stop_count_visibility = 5;
+ * @param \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption $var
+ * @return $this
+ */
+ public function setRemainingStopCountVisibility($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption::class);
+ $this->remaining_stop_count_visibility = $var;
+
+ return $this;
+ }
+
+ /**
+ * The field that specifies when vehicle location can be visible. If this
+ * field is not specified, the project level default visibility configuration
+ * for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption vehicle_location_visibility = 6;
+ * @return \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption|null
+ */
+ public function getVehicleLocationVisibility()
+ {
+ return $this->vehicle_location_visibility;
+ }
+
+ public function hasVehicleLocationVisibility()
+ {
+ return isset($this->vehicle_location_visibility);
+ }
+
+ public function clearVehicleLocationVisibility()
+ {
+ unset($this->vehicle_location_visibility);
+ }
+
+ /**
+ * The field that specifies when vehicle location can be visible. If this
+ * field is not specified, the project level default visibility configuration
+ * for this data will be used.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption vehicle_location_visibility = 6;
+ * @param \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption $var
+ * @return $this
+ */
+ public function setVehicleLocationVisibility($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig\VisibilityOption::class);
+ $this->vehicle_location_visibility = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/TaskTrackingViewConfig/VisibilityOption.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/TaskTrackingViewConfig/VisibilityOption.php
new file mode 100644
index 000000000000..57d7c4bda43e
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/TaskTrackingViewConfig/VisibilityOption.php
@@ -0,0 +1,229 @@
+maps.fleetengine.delivery.v1.TaskTrackingViewConfig.VisibilityOption
+ */
+class VisibilityOption extends \Google\Protobuf\Internal\Message
+{
+ protected $visibility_option;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $remaining_stop_count_threshold
+ * This data element is visible to the end users if the remaining stop
+ * count <= remaining_stop_count_threshold.
+ * @type \Google\Protobuf\Duration $duration_until_estimated_arrival_time_threshold
+ * This data element is visible to the end users if the ETA to the stop
+ * <= duration_until_estimated_arrival_time_threshold.
+ * @type int $remaining_driving_distance_meters_threshold
+ * This data element is visible to the end users if the remaining
+ * driving distance in meters <=
+ * remaining_driving_distance_meters_threshold.
+ * @type bool $always
+ * If set to true, this data element is always visible to the end users
+ * with no thresholds. This field cannot be set to false.
+ * @type bool $never
+ * If set to true, this data element is always hidden from the end users
+ * with no thresholds. This field cannot be set to false.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\Tasks::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * This data element is visible to the end users if the remaining stop
+ * count <= remaining_stop_count_threshold.
+ *
+ * Generated from protobuf field int32 remaining_stop_count_threshold = 1;
+ * @return int
+ */
+ public function getRemainingStopCountThreshold()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasRemainingStopCountThreshold()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * This data element is visible to the end users if the remaining stop
+ * count <= remaining_stop_count_threshold.
+ *
+ * Generated from protobuf field int32 remaining_stop_count_threshold = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setRemainingStopCountThreshold($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * This data element is visible to the end users if the ETA to the stop
+ * <= duration_until_estimated_arrival_time_threshold.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration_until_estimated_arrival_time_threshold = 2;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getDurationUntilEstimatedArrivalTimeThreshold()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasDurationUntilEstimatedArrivalTimeThreshold()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * This data element is visible to the end users if the ETA to the stop
+ * <= duration_until_estimated_arrival_time_threshold.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration_until_estimated_arrival_time_threshold = 2;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setDurationUntilEstimatedArrivalTimeThreshold($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * This data element is visible to the end users if the remaining
+ * driving distance in meters <=
+ * remaining_driving_distance_meters_threshold.
+ *
+ * Generated from protobuf field int32 remaining_driving_distance_meters_threshold = 3;
+ * @return int
+ */
+ public function getRemainingDrivingDistanceMetersThreshold()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasRemainingDrivingDistanceMetersThreshold()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * This data element is visible to the end users if the remaining
+ * driving distance in meters <=
+ * remaining_driving_distance_meters_threshold.
+ *
+ * Generated from protobuf field int32 remaining_driving_distance_meters_threshold = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setRemainingDrivingDistanceMetersThreshold($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * If set to true, this data element is always visible to the end users
+ * with no thresholds. This field cannot be set to false.
+ *
+ * Generated from protobuf field bool always = 4;
+ * @return bool
+ */
+ public function getAlways()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasAlways()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * If set to true, this data element is always visible to the end users
+ * with no thresholds. This field cannot be set to false.
+ *
+ * Generated from protobuf field bool always = 4;
+ * @param bool $var
+ * @return $this
+ */
+ public function setAlways($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * If set to true, this data element is always hidden from the end users
+ * with no thresholds. This field cannot be set to false.
+ *
+ * Generated from protobuf field bool never = 5;
+ * @return bool
+ */
+ public function getNever()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasNever()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * If set to true, this data element is always hidden from the end users
+ * with no thresholds. This field cannot be set to false.
+ *
+ * Generated from protobuf field bool never = 5;
+ * @param bool $var
+ * @return $this
+ */
+ public function setNever($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getVisibilityOption()
+ {
+ return $this->whichOneof("visibility_option");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(VisibilityOption::class, \Google\Maps\FleetEngine\Delivery\V1\TaskTrackingViewConfig_VisibilityOption::class);
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/TimeWindow.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/TimeWindow.php
new file mode 100644
index 000000000000..8d4491a57d7b
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/TimeWindow.php
@@ -0,0 +1,121 @@
+maps.fleetengine.delivery.v1.TimeWindow
+ */
+class TimeWindow extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The start time of the time window (inclusive).
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $start_time = null;
+ /**
+ * Required. The end time of the time window (inclusive).
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $end_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $start_time
+ * Required. The start time of the time window (inclusive).
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Required. The end time of the time window (inclusive).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\Common::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The start time of the time window (inclusive).
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getStartTime()
+ {
+ return $this->start_time;
+ }
+
+ public function hasStartTime()
+ {
+ return isset($this->start_time);
+ }
+
+ public function clearStartTime()
+ {
+ unset($this->start_time);
+ }
+
+ /**
+ * Required. The start time of the time window (inclusive).
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The end time of the time window (inclusive).
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEndTime()
+ {
+ return $this->end_time;
+ }
+
+ public function hasEndTime()
+ {
+ return isset($this->end_time);
+ }
+
+ public function clearEndTime()
+ {
+ unset($this->end_time);
+ }
+
+ /**
+ * Required. The end time of the time window (inclusive).
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->end_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/UpdateDeliveryVehicleRequest.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/UpdateDeliveryVehicleRequest.php
new file mode 100644
index 000000000000..0d7c7af0e6f8
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/UpdateDeliveryVehicleRequest.php
@@ -0,0 +1,201 @@
+maps.fleetengine.delivery.v1.UpdateDeliveryVehicleRequest
+ */
+class UpdateDeliveryVehicleRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $header = null;
+ /**
+ * Required. The `DeliveryVehicle` entity update to apply.
+ * Note: You cannot update the name of the `DeliveryVehicle`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicle delivery_vehicle = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $delivery_vehicle = null;
+ /**
+ * Required. A field mask that indicates which `DeliveryVehicle` fields to
+ * update. Note that the update_mask must contain at least one field.
+ * This is a comma-separated list of fully qualified names of fields. Example:
+ * `"remaining_vehicle_journey_segments"`.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle $deliveryVehicle Required. The `DeliveryVehicle` entity update to apply.
+ * Note: You cannot update the name of the `DeliveryVehicle`.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. A field mask that indicates which `DeliveryVehicle` fields to
+ * update. Note that the update_mask must contain at least one field.
+ *
+ * This is a comma-separated list of fully qualified names of fields. Example:
+ * `"remaining_vehicle_journey_segments"`.
+ *
+ * @return \Google\Maps\FleetEngine\Delivery\V1\UpdateDeliveryVehicleRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle $deliveryVehicle, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setDeliveryVehicle($deliveryVehicle)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $header
+ * Optional. The standard Delivery API request header.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle $delivery_vehicle
+ * Required. The `DeliveryVehicle` entity update to apply.
+ * Note: You cannot update the name of the `DeliveryVehicle`.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. A field mask that indicates which `DeliveryVehicle` fields to
+ * update. Note that the update_mask must contain at least one field.
+ * This is a comma-separated list of fully qualified names of fields. Example:
+ * `"remaining_vehicle_journey_segments"`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryApi::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader|null
+ */
+ public function getHeader()
+ {
+ return $this->header;
+ }
+
+ public function hasHeader()
+ {
+ return isset($this->header);
+ }
+
+ public function clearHeader()
+ {
+ unset($this->header);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $var
+ * @return $this
+ */
+ public function setHeader($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader::class);
+ $this->header = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The `DeliveryVehicle` entity update to apply.
+ * Note: You cannot update the name of the `DeliveryVehicle`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicle delivery_vehicle = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle|null
+ */
+ public function getDeliveryVehicle()
+ {
+ return $this->delivery_vehicle;
+ }
+
+ public function hasDeliveryVehicle()
+ {
+ return isset($this->delivery_vehicle);
+ }
+
+ public function clearDeliveryVehicle()
+ {
+ unset($this->delivery_vehicle);
+ }
+
+ /**
+ * Required. The `DeliveryVehicle` entity update to apply.
+ * Note: You cannot update the name of the `DeliveryVehicle`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryVehicle delivery_vehicle = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle $var
+ * @return $this
+ */
+ public function setDeliveryVehicle($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle::class);
+ $this->delivery_vehicle = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. A field mask that indicates which `DeliveryVehicle` fields to
+ * update. Note that the update_mask must contain at least one field.
+ * This is a comma-separated list of fully qualified names of fields. Example:
+ * `"remaining_vehicle_journey_segments"`.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. A field mask that indicates which `DeliveryVehicle` fields to
+ * update. Note that the update_mask must contain at least one field.
+ * This is a comma-separated list of fully qualified names of fields. Example:
+ * `"remaining_vehicle_journey_segments"`.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/UpdateTaskRequest.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/UpdateTaskRequest.php
new file mode 100644
index 000000000000..5ec3945df6de
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/UpdateTaskRequest.php
@@ -0,0 +1,259 @@
+maps.fleetengine.delivery.v1.UpdateTaskRequest
+ */
+class UpdateTaskRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $header = null;
+ /**
+ * Required. The Task associated with the update.
+ * The following fields are maintained by Fleet Engine. Do not update
+ * them using `Task.update`.
+ * * `last_location`.
+ * * `last_location_snappable`.
+ * * `name`.
+ * * `remaining_vehicle_journey_segments`.
+ * * `task_outcome_location_source`.
+ * Note: You cannot change the value of `task_outcome` once you set it.
+ * If the Task has been assigned to a delivery vehicle, then don't set the
+ * Task state to CLOSED using `Task.update`. Instead, remove the `VehicleStop`
+ * that contains the Task from the delivery vehicle, which automatically sets
+ * the Task state to CLOSED.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task task = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $task = null;
+ /**
+ * Required. The field mask that indicates which Task fields to update.
+ * Note: The `update_mask` must contain at least one field.
+ * This is a comma-separated list of fully qualified names of fields. Example:
+ * `"task_outcome,task_outcome_time,task_outcome_location"`.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Maps\FleetEngine\Delivery\V1\Task $task Required. The Task associated with the update.
+ * The following fields are maintained by Fleet Engine. Do not update
+ * them using `Task.update`.
+ *
+ * * `last_location`.
+ * * `last_location_snappable`.
+ * * `name`.
+ * * `remaining_vehicle_journey_segments`.
+ * * `task_outcome_location_source`.
+ *
+ * Note: You cannot change the value of `task_outcome` once you set it.
+ *
+ * If the Task has been assigned to a delivery vehicle, then don't set the
+ * Task state to CLOSED using `Task.update`. Instead, remove the `VehicleStop`
+ * that contains the Task from the delivery vehicle, which automatically sets
+ * the Task state to CLOSED.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. The field mask that indicates which Task fields to update.
+ * Note: The `update_mask` must contain at least one field.
+ *
+ * This is a comma-separated list of fully qualified names of fields. Example:
+ * `"task_outcome,task_outcome_time,task_outcome_location"`.
+ *
+ * @return \Google\Maps\FleetEngine\Delivery\V1\UpdateTaskRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Maps\FleetEngine\Delivery\V1\Task $task, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setTask($task)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $header
+ * Optional. The standard Delivery API request header.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\Task $task
+ * Required. The Task associated with the update.
+ * The following fields are maintained by Fleet Engine. Do not update
+ * them using `Task.update`.
+ * * `last_location`.
+ * * `last_location_snappable`.
+ * * `name`.
+ * * `remaining_vehicle_journey_segments`.
+ * * `task_outcome_location_source`.
+ * Note: You cannot change the value of `task_outcome` once you set it.
+ * If the Task has been assigned to a delivery vehicle, then don't set the
+ * Task state to CLOSED using `Task.update`. Instead, remove the `VehicleStop`
+ * that contains the Task from the delivery vehicle, which automatically sets
+ * the Task state to CLOSED.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. The field mask that indicates which Task fields to update.
+ * Note: The `update_mask` must contain at least one field.
+ * This is a comma-separated list of fully qualified names of fields. Example:
+ * `"task_outcome,task_outcome_time,task_outcome_location"`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryApi::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader|null
+ */
+ public function getHeader()
+ {
+ return $this->header;
+ }
+
+ public function hasHeader()
+ {
+ return isset($this->header);
+ }
+
+ public function clearHeader()
+ {
+ unset($this->header);
+ }
+
+ /**
+ * Optional. The standard Delivery API request header.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.DeliveryRequestHeader header = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader $var
+ * @return $this
+ */
+ public function setHeader($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\DeliveryRequestHeader::class);
+ $this->header = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The Task associated with the update.
+ * The following fields are maintained by Fleet Engine. Do not update
+ * them using `Task.update`.
+ * * `last_location`.
+ * * `last_location_snappable`.
+ * * `name`.
+ * * `remaining_vehicle_journey_segments`.
+ * * `task_outcome_location_source`.
+ * Note: You cannot change the value of `task_outcome` once you set it.
+ * If the Task has been assigned to a delivery vehicle, then don't set the
+ * Task state to CLOSED using `Task.update`. Instead, remove the `VehicleStop`
+ * that contains the Task from the delivery vehicle, which automatically sets
+ * the Task state to CLOSED.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task task = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\Task|null
+ */
+ public function getTask()
+ {
+ return $this->task;
+ }
+
+ public function hasTask()
+ {
+ return isset($this->task);
+ }
+
+ public function clearTask()
+ {
+ unset($this->task);
+ }
+
+ /**
+ * Required. The Task associated with the update.
+ * The following fields are maintained by Fleet Engine. Do not update
+ * them using `Task.update`.
+ * * `last_location`.
+ * * `last_location_snappable`.
+ * * `name`.
+ * * `remaining_vehicle_journey_segments`.
+ * * `task_outcome_location_source`.
+ * Note: You cannot change the value of `task_outcome` once you set it.
+ * If the Task has been assigned to a delivery vehicle, then don't set the
+ * Task state to CLOSED using `Task.update`. Instead, remove the `VehicleStop`
+ * that contains the Task from the delivery vehicle, which automatically sets
+ * the Task state to CLOSED.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.Task task = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\Task $var
+ * @return $this
+ */
+ public function setTask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\Task::class);
+ $this->task = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The field mask that indicates which Task fields to update.
+ * Note: The `update_mask` must contain at least one field.
+ * This is a comma-separated list of fully qualified names of fields. Example:
+ * `"task_outcome,task_outcome_time,task_outcome_location"`.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. The field mask that indicates which Task fields to update.
+ * Note: The `update_mask` must contain at least one field.
+ * This is a comma-separated list of fully qualified names of fields. Example:
+ * `"task_outcome,task_outcome_time,task_outcome_location"`.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/VehicleJourneySegment.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/VehicleJourneySegment.php
new file mode 100644
index 000000000000..cdef673d39a0
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/VehicleJourneySegment.php
@@ -0,0 +1,352 @@
+maps.fleetengine.delivery.v1.VehicleJourneySegment
+ */
+class VehicleJourneySegment extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Specifies the stop location, along with the `Task`s associated with
+ * the stop. Some fields of the VehicleStop might not be present if this
+ * journey segment is part of `JourneySharingInfo`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.VehicleStop stop = 1;
+ */
+ protected $stop = null;
+ /**
+ * Output only. The travel distance from the previous stop to this stop.
+ * If the current stop is the first stop in the list of journey
+ * segments, then the starting point is the vehicle's location recorded
+ * at the time that this stop was added to the list. This field might not be
+ * present if this journey segment is part of `JourneySharingInfo`.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value driving_distance_meters = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $driving_distance_meters = null;
+ /**
+ * Output only. The travel time from the previous stop to this stop.
+ * If the current stop is the first stop in the list of journey
+ * segments, then the starting point is the Vehicle's location recorded
+ * at the time that this stop was added to the list.
+ * If this field is defined in the path
+ * `Task.remaining_vehicle_journey_segments[0].driving_duration` (gRPC) or
+ * `Task.remainingVehicleJourneySegments[0].drivingDuration` (REST),
+ * then it may be populated with the value from
+ * `DeliveryVehicle.remaining_duration` (gRPC) or
+ * `DeliveryVehicle.remainingDuration` (REST).
+ * This provides the remaining driving duration from the driver app's latest
+ * known location rather than the driving time from the previous stop.
+ *
+ * Generated from protobuf field .google.protobuf.Duration driving_duration = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $driving_duration = null;
+ /**
+ * Output only. The path from the previous stop to this stop. If the current
+ * stop is the first stop in the list of journey segments, then this is the
+ * path from the vehicle's current location to this stop at the time that the
+ * stop was added to the list. This field might not be present if this journey
+ * segment is part of `JourneySharingInfo`.
+ * If this field is defined in the path
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path`
+ * (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path`
+ * (REST), then it may be populated with the `LatLng`s decoded from
+ * `DeliveryVehicle.current_route_segment` (gRPC) or
+ * `DeliveryVehicle.currentRouteSegment` (REST). This provides the driving
+ * path from the driver app's latest known location rather than the path from
+ * the previous stop.
+ *
+ * Generated from protobuf field repeated .google.type.LatLng path = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $path;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\FleetEngine\Delivery\V1\VehicleStop $stop
+ * Specifies the stop location, along with the `Task`s associated with
+ * the stop. Some fields of the VehicleStop might not be present if this
+ * journey segment is part of `JourneySharingInfo`.
+ * @type \Google\Protobuf\Int32Value $driving_distance_meters
+ * Output only. The travel distance from the previous stop to this stop.
+ * If the current stop is the first stop in the list of journey
+ * segments, then the starting point is the vehicle's location recorded
+ * at the time that this stop was added to the list. This field might not be
+ * present if this journey segment is part of `JourneySharingInfo`.
+ * @type \Google\Protobuf\Duration $driving_duration
+ * Output only. The travel time from the previous stop to this stop.
+ * If the current stop is the first stop in the list of journey
+ * segments, then the starting point is the Vehicle's location recorded
+ * at the time that this stop was added to the list.
+ * If this field is defined in the path
+ * `Task.remaining_vehicle_journey_segments[0].driving_duration` (gRPC) or
+ * `Task.remainingVehicleJourneySegments[0].drivingDuration` (REST),
+ * then it may be populated with the value from
+ * `DeliveryVehicle.remaining_duration` (gRPC) or
+ * `DeliveryVehicle.remainingDuration` (REST).
+ * This provides the remaining driving duration from the driver app's latest
+ * known location rather than the driving time from the previous stop.
+ * @type array<\Google\Type\LatLng>|\Google\Protobuf\Internal\RepeatedField $path
+ * Output only. The path from the previous stop to this stop. If the current
+ * stop is the first stop in the list of journey segments, then this is the
+ * path from the vehicle's current location to this stop at the time that the
+ * stop was added to the list. This field might not be present if this journey
+ * segment is part of `JourneySharingInfo`.
+ * If this field is defined in the path
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path`
+ * (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path`
+ * (REST), then it may be populated with the `LatLng`s decoded from
+ * `DeliveryVehicle.current_route_segment` (gRPC) or
+ * `DeliveryVehicle.currentRouteSegment` (REST). This provides the driving
+ * path from the driver app's latest known location rather than the path from
+ * the previous stop.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryVehicles::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Specifies the stop location, along with the `Task`s associated with
+ * the stop. Some fields of the VehicleStop might not be present if this
+ * journey segment is part of `JourneySharingInfo`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.VehicleStop stop = 1;
+ * @return \Google\Maps\FleetEngine\Delivery\V1\VehicleStop|null
+ */
+ public function getStop()
+ {
+ return $this->stop;
+ }
+
+ public function hasStop()
+ {
+ return isset($this->stop);
+ }
+
+ public function clearStop()
+ {
+ unset($this->stop);
+ }
+
+ /**
+ * Specifies the stop location, along with the `Task`s associated with
+ * the stop. Some fields of the VehicleStop might not be present if this
+ * journey segment is part of `JourneySharingInfo`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.VehicleStop stop = 1;
+ * @param \Google\Maps\FleetEngine\Delivery\V1\VehicleStop $var
+ * @return $this
+ */
+ public function setStop($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\VehicleStop::class);
+ $this->stop = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The travel distance from the previous stop to this stop.
+ * If the current stop is the first stop in the list of journey
+ * segments, then the starting point is the vehicle's location recorded
+ * at the time that this stop was added to the list. This field might not be
+ * present if this journey segment is part of `JourneySharingInfo`.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value driving_distance_meters = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Int32Value|null
+ */
+ public function getDrivingDistanceMeters()
+ {
+ return $this->driving_distance_meters;
+ }
+
+ public function hasDrivingDistanceMeters()
+ {
+ return isset($this->driving_distance_meters);
+ }
+
+ public function clearDrivingDistanceMeters()
+ {
+ unset($this->driving_distance_meters);
+ }
+
+ /**
+ * Returns the unboxed value from getDrivingDistanceMeters()
+
+ * Output only. The travel distance from the previous stop to this stop.
+ * If the current stop is the first stop in the list of journey
+ * segments, then the starting point is the vehicle's location recorded
+ * at the time that this stop was added to the list. This field might not be
+ * present if this journey segment is part of `JourneySharingInfo`.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value driving_distance_meters = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int|null
+ */
+ public function getDrivingDistanceMetersUnwrapped()
+ {
+ return $this->readWrapperValue("driving_distance_meters");
+ }
+
+ /**
+ * Output only. The travel distance from the previous stop to this stop.
+ * If the current stop is the first stop in the list of journey
+ * segments, then the starting point is the vehicle's location recorded
+ * at the time that this stop was added to the list. This field might not be
+ * present if this journey segment is part of `JourneySharingInfo`.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value driving_distance_meters = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Int32Value $var
+ * @return $this
+ */
+ public function setDrivingDistanceMeters($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Int32Value::class);
+ $this->driving_distance_meters = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\Int32Value object.
+
+ * Output only. The travel distance from the previous stop to this stop.
+ * If the current stop is the first stop in the list of journey
+ * segments, then the starting point is the vehicle's location recorded
+ * at the time that this stop was added to the list. This field might not be
+ * present if this journey segment is part of `JourneySharingInfo`.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value driving_distance_meters = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int|null $var
+ * @return $this
+ */
+ public function setDrivingDistanceMetersUnwrapped($var)
+ {
+ $this->writeWrapperValue("driving_distance_meters", $var);
+ return $this;}
+
+ /**
+ * Output only. The travel time from the previous stop to this stop.
+ * If the current stop is the first stop in the list of journey
+ * segments, then the starting point is the Vehicle's location recorded
+ * at the time that this stop was added to the list.
+ * If this field is defined in the path
+ * `Task.remaining_vehicle_journey_segments[0].driving_duration` (gRPC) or
+ * `Task.remainingVehicleJourneySegments[0].drivingDuration` (REST),
+ * then it may be populated with the value from
+ * `DeliveryVehicle.remaining_duration` (gRPC) or
+ * `DeliveryVehicle.remainingDuration` (REST).
+ * This provides the remaining driving duration from the driver app's latest
+ * known location rather than the driving time from the previous stop.
+ *
+ * Generated from protobuf field .google.protobuf.Duration driving_duration = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getDrivingDuration()
+ {
+ return $this->driving_duration;
+ }
+
+ public function hasDrivingDuration()
+ {
+ return isset($this->driving_duration);
+ }
+
+ public function clearDrivingDuration()
+ {
+ unset($this->driving_duration);
+ }
+
+ /**
+ * Output only. The travel time from the previous stop to this stop.
+ * If the current stop is the first stop in the list of journey
+ * segments, then the starting point is the Vehicle's location recorded
+ * at the time that this stop was added to the list.
+ * If this field is defined in the path
+ * `Task.remaining_vehicle_journey_segments[0].driving_duration` (gRPC) or
+ * `Task.remainingVehicleJourneySegments[0].drivingDuration` (REST),
+ * then it may be populated with the value from
+ * `DeliveryVehicle.remaining_duration` (gRPC) or
+ * `DeliveryVehicle.remainingDuration` (REST).
+ * This provides the remaining driving duration from the driver app's latest
+ * known location rather than the driving time from the previous stop.
+ *
+ * Generated from protobuf field .google.protobuf.Duration driving_duration = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setDrivingDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->driving_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The path from the previous stop to this stop. If the current
+ * stop is the first stop in the list of journey segments, then this is the
+ * path from the vehicle's current location to this stop at the time that the
+ * stop was added to the list. This field might not be present if this journey
+ * segment is part of `JourneySharingInfo`.
+ * If this field is defined in the path
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path`
+ * (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path`
+ * (REST), then it may be populated with the `LatLng`s decoded from
+ * `DeliveryVehicle.current_route_segment` (gRPC) or
+ * `DeliveryVehicle.currentRouteSegment` (REST). This provides the driving
+ * path from the driver app's latest known location rather than the path from
+ * the previous stop.
+ *
+ * Generated from protobuf field repeated .google.type.LatLng path = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * Output only. The path from the previous stop to this stop. If the current
+ * stop is the first stop in the list of journey segments, then this is the
+ * path from the vehicle's current location to this stop at the time that the
+ * stop was added to the list. This field might not be present if this journey
+ * segment is part of `JourneySharingInfo`.
+ * If this field is defined in the path
+ * `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path`
+ * (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path`
+ * (REST), then it may be populated with the `LatLng`s decoded from
+ * `DeliveryVehicle.current_route_segment` (gRPC) or
+ * `DeliveryVehicle.currentRouteSegment` (REST). This provides the driving
+ * path from the driver app's latest known location rather than the path from
+ * the previous stop.
+ *
+ * Generated from protobuf field repeated .google.type.LatLng path = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Type\LatLng>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPath($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Type\LatLng::class);
+ $this->path = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/VehicleStop.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/VehicleStop.php
new file mode 100644
index 000000000000..febbc0c1605b
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/VehicleStop.php
@@ -0,0 +1,161 @@
+maps.fleetengine.delivery.v1.VehicleStop
+ */
+class VehicleStop extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The location of the stop. Note that the locations in the `Task`s
+ * might not exactly match this location, but will be within a short distance
+ * of it. This field won't be populated in the response of a `GetTask` call.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.LocationInfo planned_location = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $planned_location = null;
+ /**
+ * The list of `Task`s to be performed at this stop. This field won't be
+ * populated in the response of a `GetTask` call.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.VehicleStop.TaskInfo tasks = 2;
+ */
+ private $tasks;
+ /**
+ * The state of the `VehicleStop`. This field won't be populated in the
+ * response of a `GetTask` call.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.VehicleStop.State state = 3;
+ */
+ protected $state = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\FleetEngine\Delivery\V1\LocationInfo $planned_location
+ * Required. The location of the stop. Note that the locations in the `Task`s
+ * might not exactly match this location, but will be within a short distance
+ * of it. This field won't be populated in the response of a `GetTask` call.
+ * @type array<\Google\Maps\FleetEngine\Delivery\V1\VehicleStop\TaskInfo>|\Google\Protobuf\Internal\RepeatedField $tasks
+ * The list of `Task`s to be performed at this stop. This field won't be
+ * populated in the response of a `GetTask` call.
+ * @type int $state
+ * The state of the `VehicleStop`. This field won't be populated in the
+ * response of a `GetTask` call.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryVehicles::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The location of the stop. Note that the locations in the `Task`s
+ * might not exactly match this location, but will be within a short distance
+ * of it. This field won't be populated in the response of a `GetTask` call.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.LocationInfo planned_location = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\LocationInfo|null
+ */
+ public function getPlannedLocation()
+ {
+ return $this->planned_location;
+ }
+
+ public function hasPlannedLocation()
+ {
+ return isset($this->planned_location);
+ }
+
+ public function clearPlannedLocation()
+ {
+ unset($this->planned_location);
+ }
+
+ /**
+ * Required. The location of the stop. Note that the locations in the `Task`s
+ * might not exactly match this location, but will be within a short distance
+ * of it. This field won't be populated in the response of a `GetTask` call.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.LocationInfo planned_location = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\LocationInfo $var
+ * @return $this
+ */
+ public function setPlannedLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\LocationInfo::class);
+ $this->planned_location = $var;
+
+ return $this;
+ }
+
+ /**
+ * The list of `Task`s to be performed at this stop. This field won't be
+ * populated in the response of a `GetTask` call.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.VehicleStop.TaskInfo tasks = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTasks()
+ {
+ return $this->tasks;
+ }
+
+ /**
+ * The list of `Task`s to be performed at this stop. This field won't be
+ * populated in the response of a `GetTask` call.
+ *
+ * Generated from protobuf field repeated .maps.fleetengine.delivery.v1.VehicleStop.TaskInfo tasks = 2;
+ * @param array<\Google\Maps\FleetEngine\Delivery\V1\VehicleStop\TaskInfo>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTasks($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\FleetEngine\Delivery\V1\VehicleStop\TaskInfo::class);
+ $this->tasks = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The state of the `VehicleStop`. This field won't be populated in the
+ * response of a `GetTask` call.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.VehicleStop.State state = 3;
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * The state of the `VehicleStop`. This field won't be populated in the
+ * response of a `GetTask` call.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.VehicleStop.State state = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\FleetEngine\Delivery\V1\VehicleStop\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/VehicleStop/State.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/VehicleStop/State.php
new file mode 100644
index 000000000000..f212532f517f
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/VehicleStop/State.php
@@ -0,0 +1,76 @@
+maps.fleetengine.delivery.v1.VehicleStop.State
+ */
+class State
+{
+ /**
+ * Unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * Created, but not actively routing.
+ *
+ * Generated from protobuf enum NEW = 1;
+ */
+ const PBNEW = 1;
+ /**
+ * Assigned and actively routing.
+ *
+ * Generated from protobuf enum ENROUTE = 2;
+ */
+ const ENROUTE = 2;
+ /**
+ * Arrived at stop. Assumes that when the Vehicle is routing to the next
+ * stop, that all previous stops have been completed.
+ *
+ * Generated from protobuf enum ARRIVED = 3;
+ */
+ const ARRIVED = 3;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::PBNEW => 'NEW',
+ self::ENROUTE => 'ENROUTE',
+ self::ARRIVED => 'ARRIVED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ $pbconst = __CLASS__. '::PB' . strtoupper($name);
+ if (!defined($pbconst)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($pbconst);
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(State::class, \Google\Maps\FleetEngine\Delivery\V1\VehicleStop_State::class);
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/VehicleStop/TaskInfo.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/VehicleStop/TaskInfo.php
new file mode 100644
index 000000000000..3e6b3a1b19a4
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/proto/src/Google/Maps/FleetEngine/Delivery/V1/VehicleStop/TaskInfo.php
@@ -0,0 +1,190 @@
+maps.fleetengine.delivery.v1.VehicleStop.TaskInfo
+ */
+class TaskInfo extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The Task ID. This field won't be populated in the response of a `GetTask`
+ * call. Task IDs are subject to the following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string task_id = 1;
+ */
+ protected $task_id = '';
+ /**
+ * Output only. The time required to perform the Task.
+ *
+ * Generated from protobuf field .google.protobuf.Duration task_duration = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $task_duration = null;
+ /**
+ * Output only. The time window during which the task should be completed.
+ * This is only set in the response to `GetDeliveryVehicle`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TimeWindow target_time_window = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $target_time_window = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $task_id
+ * The Task ID. This field won't be populated in the response of a `GetTask`
+ * call. Task IDs are subject to the following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ * @type \Google\Protobuf\Duration $task_duration
+ * Output only. The time required to perform the Task.
+ * @type \Google\Maps\FleetEngine\Delivery\V1\TimeWindow $target_time_window
+ * Output only. The time window during which the task should be completed.
+ * This is only set in the response to `GetDeliveryVehicle`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Fleetengine\Delivery\V1\DeliveryVehicles::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The Task ID. This field won't be populated in the response of a `GetTask`
+ * call. Task IDs are subject to the following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string task_id = 1;
+ * @return string
+ */
+ public function getTaskId()
+ {
+ return $this->task_id;
+ }
+
+ /**
+ * The Task ID. This field won't be populated in the response of a `GetTask`
+ * call. Task IDs are subject to the following restrictions:
+ * * Must be a valid Unicode string.
+ * * Limited to a maximum length of 64 characters.
+ * * Normalized according to [Unicode Normalization Form C]
+ * (http://www.unicode.org/reports/tr15/).
+ * * May not contain any of the following ASCII characters: '/', ':', '?',
+ * ',', or '#'.
+ *
+ * Generated from protobuf field string task_id = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setTaskId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->task_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time required to perform the Task.
+ *
+ * Generated from protobuf field .google.protobuf.Duration task_duration = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getTaskDuration()
+ {
+ return $this->task_duration;
+ }
+
+ public function hasTaskDuration()
+ {
+ return isset($this->task_duration);
+ }
+
+ public function clearTaskDuration()
+ {
+ unset($this->task_duration);
+ }
+
+ /**
+ * Output only. The time required to perform the Task.
+ *
+ * Generated from protobuf field .google.protobuf.Duration task_duration = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setTaskDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->task_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time window during which the task should be completed.
+ * This is only set in the response to `GetDeliveryVehicle`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TimeWindow target_time_window = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Maps\FleetEngine\Delivery\V1\TimeWindow|null
+ */
+ public function getTargetTimeWindow()
+ {
+ return $this->target_time_window;
+ }
+
+ public function hasTargetTimeWindow()
+ {
+ return isset($this->target_time_window);
+ }
+
+ public function clearTargetTimeWindow()
+ {
+ unset($this->target_time_window);
+ }
+
+ /**
+ * Output only. The time window during which the task should be completed.
+ * This is only set in the response to `GetDeliveryVehicle`.
+ *
+ * Generated from protobuf field .maps.fleetengine.delivery.v1.TimeWindow target_time_window = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Maps\FleetEngine\Delivery\V1\TimeWindow $var
+ * @return $this
+ */
+ public function setTargetTimeWindow($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\FleetEngine\Delivery\V1\TimeWindow::class);
+ $this->target_time_window = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(TaskInfo::class, \Google\Maps\FleetEngine\Delivery\V1\VehicleStop_TaskInfo::class);
+
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/batch_create_tasks.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/batch_create_tasks.php
new file mode 100644
index 000000000000..1c816c55c451
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/batch_create_tasks.php
@@ -0,0 +1,122 @@
+setType($requestsTaskType)
+ ->setState($requestsTaskState)
+ ->setTaskDuration($requestsTaskTaskDuration);
+ $createTaskRequest = (new CreateTaskRequest())
+ ->setParent($requestsParent)
+ ->setTaskId($requestsTaskId)
+ ->setTask($requestsTask);
+ $requests = [$createTaskRequest,];
+ $request = (new BatchCreateTasksRequest())
+ ->setParent($formattedParent)
+ ->setRequests($requests);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var BatchCreateTasksResponse $response */
+ $response = $deliveryServiceClient->batchCreateTasks($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = DeliveryServiceClient::providerName('[PROVIDER]');
+ $requestsParent = '[PARENT]';
+ $requestsTaskId = '[TASK_ID]';
+ $requestsTaskType = Type::TYPE_UNSPECIFIED;
+ $requestsTaskState = State::STATE_UNSPECIFIED;
+
+ batch_create_tasks_sample(
+ $formattedParent,
+ $requestsParent,
+ $requestsTaskId,
+ $requestsTaskType,
+ $requestsTaskState
+ );
+}
+// [END fleetengine_v1_generated_DeliveryService_BatchCreateTasks_sync]
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/create_delivery_vehicle.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/create_delivery_vehicle.php
new file mode 100644
index 000000000000..073a24cbc694
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/create_delivery_vehicle.php
@@ -0,0 +1,84 @@
+setParent($parent)
+ ->setDeliveryVehicleId($deliveryVehicleId)
+ ->setDeliveryVehicle($deliveryVehicle);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var DeliveryVehicle $response */
+ $response = $deliveryServiceClient->createDeliveryVehicle($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $parent = '[PARENT]';
+ $deliveryVehicleId = '[DELIVERY_VEHICLE_ID]';
+
+ create_delivery_vehicle_sample($parent, $deliveryVehicleId);
+}
+// [END fleetengine_v1_generated_DeliveryService_CreateDeliveryVehicle_sync]
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/create_task.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/create_task.php
new file mode 100644
index 000000000000..1a5973aa56dd
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/create_task.php
@@ -0,0 +1,98 @@
+setType($taskType)
+ ->setState($taskState)
+ ->setTaskDuration($taskTaskDuration);
+ $request = (new CreateTaskRequest())
+ ->setParent($parent)
+ ->setTaskId($taskId)
+ ->setTask($task);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Task $response */
+ $response = $deliveryServiceClient->createTask($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $parent = '[PARENT]';
+ $taskId = '[TASK_ID]';
+ $taskType = Type::TYPE_UNSPECIFIED;
+ $taskState = State::STATE_UNSPECIFIED;
+
+ create_task_sample($parent, $taskId, $taskType, $taskState);
+}
+// [END fleetengine_v1_generated_DeliveryService_CreateTask_sync]
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/get_delivery_vehicle.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/get_delivery_vehicle.php
new file mode 100644
index 000000000000..50f56f19dccc
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/get_delivery_vehicle.php
@@ -0,0 +1,74 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var DeliveryVehicle $response */
+ $response = $deliveryServiceClient->getDeliveryVehicle($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = DeliveryServiceClient::deliveryVehicleName('[PROVIDER]', '[VEHICLE]');
+
+ get_delivery_vehicle_sample($formattedName);
+}
+// [END fleetengine_v1_generated_DeliveryService_GetDeliveryVehicle_sync]
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/get_task.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/get_task.php
new file mode 100644
index 000000000000..c2813462b02b
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/get_task.php
@@ -0,0 +1,73 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Task $response */
+ $response = $deliveryServiceClient->getTask($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = DeliveryServiceClient::taskName('[PROVIDER]', '[TASK]');
+
+ get_task_sample($formattedName);
+}
+// [END fleetengine_v1_generated_DeliveryService_GetTask_sync]
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/get_task_tracking_info.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/get_task_tracking_info.php
new file mode 100644
index 000000000000..8535af281902
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/get_task_tracking_info.php
@@ -0,0 +1,75 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TaskTrackingInfo $response */
+ $response = $deliveryServiceClient->getTaskTrackingInfo($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = DeliveryServiceClient::taskTrackingInfoName('[PROVIDER]', '[TRACKING]');
+
+ get_task_tracking_info_sample($formattedName);
+}
+// [END fleetengine_v1_generated_DeliveryService_GetTaskTrackingInfo_sync]
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/list_delivery_vehicles.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/list_delivery_vehicles.php
new file mode 100644
index 000000000000..957671072030
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/list_delivery_vehicles.php
@@ -0,0 +1,78 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $deliveryServiceClient->listDeliveryVehicles($request);
+
+ /** @var DeliveryVehicle $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = DeliveryServiceClient::providerName('[PROVIDER]');
+
+ list_delivery_vehicles_sample($formattedParent);
+}
+// [END fleetengine_v1_generated_DeliveryService_ListDeliveryVehicles_sync]
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/list_tasks.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/list_tasks.php
new file mode 100644
index 000000000000..cbdf67b339bf
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/list_tasks.php
@@ -0,0 +1,78 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $deliveryServiceClient->listTasks($request);
+
+ /** @var Task $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = DeliveryServiceClient::providerName('[PROVIDER]');
+
+ list_tasks_sample($formattedParent);
+}
+// [END fleetengine_v1_generated_DeliveryService_ListTasks_sync]
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/update_delivery_vehicle.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/update_delivery_vehicle.php
new file mode 100644
index 000000000000..e1c846357a3b
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/update_delivery_vehicle.php
@@ -0,0 +1,68 @@
+setDeliveryVehicle($deliveryVehicle)
+ ->setUpdateMask($updateMask);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var DeliveryVehicle $response */
+ $response = $deliveryServiceClient->updateDeliveryVehicle($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END fleetengine_v1_generated_DeliveryService_UpdateDeliveryVehicle_sync]
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/update_task.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/update_task.php
new file mode 100644
index 000000000000..ba858db67368
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/samples/V1/DeliveryServiceClient/update_task.php
@@ -0,0 +1,84 @@
+setType($taskType)
+ ->setState($taskState)
+ ->setTaskDuration($taskTaskDuration);
+ $updateMask = new FieldMask();
+ $request = (new UpdateTaskRequest())
+ ->setTask($task)
+ ->setUpdateMask($updateMask);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Task $response */
+ $response = $deliveryServiceClient->updateTask($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $taskType = Type::TYPE_UNSPECIFIED;
+ $taskState = State::STATE_UNSPECIFIED;
+
+ update_task_sample($taskType, $taskState);
+}
+// [END fleetengine_v1_generated_DeliveryService_UpdateTask_sync]
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/src/V1/Client/DeliveryServiceClient.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/src/V1/Client/DeliveryServiceClient.php
new file mode 100644
index 000000000000..656f0f8a45b8
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/src/V1/Client/DeliveryServiceClient.php
@@ -0,0 +1,557 @@
+ batchCreateTasksAsync(BatchCreateTasksRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createDeliveryVehicleAsync(CreateDeliveryVehicleRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createTaskAsync(CreateTaskRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getDeliveryVehicleAsync(GetDeliveryVehicleRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getTaskAsync(GetTaskRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getTaskTrackingInfoAsync(GetTaskTrackingInfoRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listDeliveryVehiclesAsync(ListDeliveryVehiclesRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listTasksAsync(ListTasksRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateDeliveryVehicleAsync(UpdateDeliveryVehicleRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateTaskAsync(UpdateTaskRequest $request, array $optionalArgs = [])
+ */
+final class DeliveryServiceClient
+{
+ use GapicClientTrait;
+ use ResourceHelperTrait;
+
+ /** The name of the service. */
+ private const SERVICE_NAME = 'maps.fleetengine.delivery.v1.DeliveryService';
+
+ /**
+ * The default address of the service.
+ *
+ * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead.
+ */
+ private const SERVICE_ADDRESS = 'fleetengine.googleapis.com';
+
+ /** The address template of the service. */
+ private const SERVICE_ADDRESS_TEMPLATE = 'fleetengine.UNIVERSE_DOMAIN';
+
+ /** The default port of the service. */
+ private const DEFAULT_SERVICE_PORT = 443;
+
+ /** The name of the code generator, to be included in the agent header. */
+ private const CODEGEN_NAME = 'gapic';
+
+ /** The default scopes required by the service. */
+ public static $serviceScopes = [
+ 'https://www.googleapis.com/auth/cloud-platform',
+ ];
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/delivery_service_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/delivery_service_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/delivery_service_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/delivery_service_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * delivery_vehicle resource.
+ *
+ * @param string $provider
+ * @param string $vehicle
+ *
+ * @return string The formatted delivery_vehicle resource.
+ */
+ public static function deliveryVehicleName(string $provider, string $vehicle): string
+ {
+ return self::getPathTemplate('deliveryVehicle')->render([
+ 'provider' => $provider,
+ 'vehicle' => $vehicle,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a provider
+ * resource.
+ *
+ * @param string $provider
+ *
+ * @return string The formatted provider resource.
+ */
+ public static function providerName(string $provider): string
+ {
+ return self::getPathTemplate('provider')->render([
+ 'provider' => $provider,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a task
+ * resource.
+ *
+ * @param string $provider
+ * @param string $task
+ *
+ * @return string The formatted task resource.
+ */
+ public static function taskName(string $provider, string $task): string
+ {
+ return self::getPathTemplate('task')->render([
+ 'provider' => $provider,
+ 'task' => $task,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * task_tracking_info resource.
+ *
+ * @param string $provider
+ * @param string $tracking
+ *
+ * @return string The formatted task_tracking_info resource.
+ */
+ public static function taskTrackingInfoName(string $provider, string $tracking): string
+ {
+ return self::getPathTemplate('taskTrackingInfo')->render([
+ 'provider' => $provider,
+ 'tracking' => $tracking,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - deliveryVehicle: providers/{provider}/deliveryVehicles/{vehicle}
+ * - provider: providers/{provider}
+ * - task: providers/{provider}/tasks/{task}
+ * - taskTrackingInfo: providers/{provider}/taskTrackingInfo/{tracking}
+ *
+ * The optional $template argument can be supplied to specify a particular pattern,
+ * and must match one of the templates listed above. If no $template argument is
+ * provided, or if the $template argument does not match one of the templates
+ * listed, then parseName will check each of the supported templates, and return
+ * the first match.
+ *
+ * @param string $formattedName The formatted name string
+ * @param ?string $template Optional name of template to match
+ *
+ * @return array An associative array from name component IDs to component values.
+ *
+ * @throws ValidationException If $formattedName could not be matched.
+ */
+ public static function parseName(string $formattedName, ?string $template = null): array
+ {
+ return self::parseFormattedName($formattedName, $template);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $options {
+ * Optional. Options for configuring the service API wrapper.
+ *
+ * @type string $apiEndpoint
+ * The address of the API remote host. May optionally include the port, formatted
+ * as ":". Default 'fleetengine.googleapis.com:443'.
+ * @type string|array|FetchAuthTokenInterface|CredentialsWrapper $credentials
+ * The credentials to be used by the client to authorize API calls. This option
+ * accepts either a path to a credentials file, or a decoded credentials file as a
+ * PHP array.
+ * *Advanced usage*: In addition, this option can also accept a pre-constructed
+ * {@see \Google\Auth\FetchAuthTokenInterface} object or
+ * {@see \Google\ApiCore\CredentialsWrapper} object. Note that when one of these
+ * objects are provided, any settings in $credentialsConfig will be ignored.
+ * @type array $credentialsConfig
+ * Options used to configure credentials, including auth token caching, for the
+ * client. For a full list of supporting configuration options, see
+ * {@see \Google\ApiCore\CredentialsWrapper::build()} .
+ * @type bool $disableRetries
+ * Determines whether or not retries defined by the client configuration should be
+ * disabled. Defaults to `false`.
+ * @type string|array $clientConfig
+ * Client method configuration, including retry settings. This option can be either
+ * a path to a JSON file, or a PHP array containing the decoded JSON data. By
+ * default this settings points to the default client config file, which is
+ * provided in the resources folder.
+ * @type string|TransportInterface $transport
+ * The transport used for executing network requests. May be either the string
+ * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system.
+ * *Advanced usage*: Additionally, it is possible to pass in an already
+ * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note
+ * that when this object is provided, any settings in $transportConfig, and any
+ * $apiEndpoint setting, will be ignored.
+ * @type array $transportConfig
+ * Configuration options that will be used to construct the transport. Options for
+ * each supported transport type should be passed in a key for that transport. For
+ * example:
+ * $transportConfig = [
+ * 'grpc' => [...],
+ * 'rest' => [...],
+ * ];
+ * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and
+ * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the
+ * supported options.
+ * @type callable $clientCertSource
+ * A callable which returns the client cert as a string. This can be used to
+ * provide a certificate and private key to the transport layer for mTLS.
+ * @type false|LoggerInterface $logger
+ * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the
+ * 'GOOGLE_SDK_PHP_LOGGING' environment flag
+ * }
+ *
+ * @throws ValidationException
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ }
+
+ /** Handles execution of the async variants for each documented method. */
+ public function __call($method, $args)
+ {
+ if (substr($method, -5) !== 'Async') {
+ trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR);
+ }
+
+ array_unshift($args, substr($method, 0, -5));
+ return call_user_func_array([$this, 'startAsyncCall'], $args);
+ }
+
+ /**
+ * Creates and returns a batch of new `Task` objects.
+ *
+ * The async variant is {@see DeliveryServiceClient::batchCreateTasksAsync()} .
+ *
+ * @example samples/V1/DeliveryServiceClient/batch_create_tasks.php
+ *
+ * @param BatchCreateTasksRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return BatchCreateTasksResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function batchCreateTasks(BatchCreateTasksRequest $request, array $callOptions = []): BatchCreateTasksResponse
+ {
+ return $this->startApiCall('BatchCreateTasks', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates and returns a new `DeliveryVehicle`.
+ *
+ * The async variant is {@see DeliveryServiceClient::createDeliveryVehicleAsync()}
+ * .
+ *
+ * @example samples/V1/DeliveryServiceClient/create_delivery_vehicle.php
+ *
+ * @param CreateDeliveryVehicleRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return DeliveryVehicle
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createDeliveryVehicle(CreateDeliveryVehicleRequest $request, array $callOptions = []): DeliveryVehicle
+ {
+ return $this->startApiCall('CreateDeliveryVehicle', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates and returns a new `Task` object.
+ *
+ * The async variant is {@see DeliveryServiceClient::createTaskAsync()} .
+ *
+ * @example samples/V1/DeliveryServiceClient/create_task.php
+ *
+ * @param CreateTaskRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Task
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createTask(CreateTaskRequest $request, array $callOptions = []): Task
+ {
+ return $this->startApiCall('CreateTask', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Returns the specified `DeliveryVehicle` instance.
+ *
+ * The async variant is {@see DeliveryServiceClient::getDeliveryVehicleAsync()} .
+ *
+ * @example samples/V1/DeliveryServiceClient/get_delivery_vehicle.php
+ *
+ * @param GetDeliveryVehicleRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return DeliveryVehicle
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getDeliveryVehicle(GetDeliveryVehicleRequest $request, array $callOptions = []): DeliveryVehicle
+ {
+ return $this->startApiCall('GetDeliveryVehicle', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets information about a `Task`.
+ *
+ * The async variant is {@see DeliveryServiceClient::getTaskAsync()} .
+ *
+ * @example samples/V1/DeliveryServiceClient/get_task.php
+ *
+ * @param GetTaskRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Task
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getTask(GetTaskRequest $request, array $callOptions = []): Task
+ {
+ return $this->startApiCall('GetTask', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Returns the specified `TaskTrackingInfo` instance.
+ *
+ * The async variant is {@see DeliveryServiceClient::getTaskTrackingInfoAsync()} .
+ *
+ * @example samples/V1/DeliveryServiceClient/get_task_tracking_info.php
+ *
+ * @param GetTaskTrackingInfoRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return TaskTrackingInfo
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getTaskTrackingInfo(GetTaskTrackingInfoRequest $request, array $callOptions = []): TaskTrackingInfo
+ {
+ return $this->startApiCall('GetTaskTrackingInfo', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets all `DeliveryVehicle`s that meet the specified filtering criteria.
+ *
+ * The async variant is {@see DeliveryServiceClient::listDeliveryVehiclesAsync()} .
+ *
+ * @example samples/V1/DeliveryServiceClient/list_delivery_vehicles.php
+ *
+ * @param ListDeliveryVehiclesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listDeliveryVehicles(ListDeliveryVehiclesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListDeliveryVehicles', $request, $callOptions);
+ }
+
+ /**
+ * Gets all `Task`s that meet the specified filtering criteria.
+ *
+ * The async variant is {@see DeliveryServiceClient::listTasksAsync()} .
+ *
+ * @example samples/V1/DeliveryServiceClient/list_tasks.php
+ *
+ * @param ListTasksRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listTasks(ListTasksRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListTasks', $request, $callOptions);
+ }
+
+ /**
+ * Writes updated `DeliveryVehicle` data to Fleet Engine, and assigns
+ * `Tasks` to the `DeliveryVehicle`. You cannot update the name of the
+ * `DeliveryVehicle`. You *can* update `remaining_vehicle_journey_segments`,
+ * but it must contain all of the `VehicleJourneySegment`s to be persisted on
+ * the `DeliveryVehicle`. The `task_id`s are retrieved from
+ * `remaining_vehicle_journey_segments`, and their corresponding `Tasks` are
+ * assigned to the `DeliveryVehicle` if they have not yet been assigned.
+ *
+ * The async variant is {@see DeliveryServiceClient::updateDeliveryVehicleAsync()}
+ * .
+ *
+ * @example samples/V1/DeliveryServiceClient/update_delivery_vehicle.php
+ *
+ * @param UpdateDeliveryVehicleRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return DeliveryVehicle
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateDeliveryVehicle(UpdateDeliveryVehicleRequest $request, array $callOptions = []): DeliveryVehicle
+ {
+ return $this->startApiCall('UpdateDeliveryVehicle', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates `Task` data.
+ *
+ * The async variant is {@see DeliveryServiceClient::updateTaskAsync()} .
+ *
+ * @example samples/V1/DeliveryServiceClient/update_task.php
+ *
+ * @param UpdateTaskRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Task
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateTask(UpdateTaskRequest $request, array $callOptions = []): Task
+ {
+ return $this->startApiCall('UpdateTask', $request, $callOptions)->wait();
+ }
+}
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/src/V1/gapic_metadata.json b/owl-bot-staging/MapsFleetEngineDelivery/v1/src/V1/gapic_metadata.json
new file mode 100644
index 000000000000..bb2fff435e22
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/src/V1/gapic_metadata.json
@@ -0,0 +1,68 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "maps.fleetengine.delivery.v1",
+ "libraryPackage": "Google\\Maps\\FleetEngine\\Delivery\\V1",
+ "services": {
+ "DeliveryService": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "DeliveryServiceGapicClient",
+ "rpcs": {
+ "BatchCreateTasks": {
+ "methods": [
+ "batchCreateTasks"
+ ]
+ },
+ "CreateDeliveryVehicle": {
+ "methods": [
+ "createDeliveryVehicle"
+ ]
+ },
+ "CreateTask": {
+ "methods": [
+ "createTask"
+ ]
+ },
+ "GetDeliveryVehicle": {
+ "methods": [
+ "getDeliveryVehicle"
+ ]
+ },
+ "GetTask": {
+ "methods": [
+ "getTask"
+ ]
+ },
+ "GetTaskTrackingInfo": {
+ "methods": [
+ "getTaskTrackingInfo"
+ ]
+ },
+ "ListDeliveryVehicles": {
+ "methods": [
+ "listDeliveryVehicles"
+ ]
+ },
+ "ListTasks": {
+ "methods": [
+ "listTasks"
+ ]
+ },
+ "UpdateDeliveryVehicle": {
+ "methods": [
+ "updateDeliveryVehicle"
+ ]
+ },
+ "UpdateTask": {
+ "methods": [
+ "updateTask"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/src/V1/resources/delivery_service_client_config.json b/owl-bot-staging/MapsFleetEngineDelivery/v1/src/V1/resources/delivery_service_client_config.json
new file mode 100644
index 000000000000..ec4118ccb923
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/src/V1/resources/delivery_service_client_config.json
@@ -0,0 +1,84 @@
+{
+ "interfaces": {
+ "maps.fleetengine.delivery.v1.DeliveryService": {
+ "retry_codes": {
+ "no_retry_codes": [],
+ "retry_policy_1_codes": [
+ "UNAVAILABLE"
+ ]
+ },
+ "retry_params": {
+ "no_retry_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 0,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 0,
+ "total_timeout_millis": 0
+ },
+ "retry_policy_1_params": {
+ "initial_retry_delay_millis": 1000,
+ "retry_delay_multiplier": 1.3,
+ "max_retry_delay_millis": 10000,
+ "initial_rpc_timeout_millis": 60000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 60000,
+ "total_timeout_millis": 60000
+ }
+ },
+ "methods": {
+ "BatchCreateTasks": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "CreateDeliveryVehicle": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "CreateTask": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetDeliveryVehicle": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetTask": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetTaskTrackingInfo": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListDeliveryVehicles": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListTasks": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "UpdateDeliveryVehicle": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "UpdateTask": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/src/V1/resources/delivery_service_descriptor_config.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/src/V1/resources/delivery_service_descriptor_config.php
new file mode 100644
index 000000000000..165315e83862
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/src/V1/resources/delivery_service_descriptor_config.php
@@ -0,0 +1,202 @@
+ [
+ 'maps.fleetengine.delivery.v1.DeliveryService' => [
+ 'BatchCreateTasks' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Maps\FleetEngine\Delivery\V1\BatchCreateTasksResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'provider_id',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ 'matchers' => [
+ '/^(?providers\/[^\/]+)$/',
+ ],
+ ],
+ ],
+ ],
+ 'CreateDeliveryVehicle' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle',
+ 'headerParams' => [
+ [
+ 'keyName' => 'provider_id',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ 'matchers' => [
+ '/^(?providers\/[^\/]+)$/',
+ ],
+ ],
+ ],
+ ],
+ 'CreateTask' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Maps\FleetEngine\Delivery\V1\Task',
+ 'headerParams' => [
+ [
+ 'keyName' => 'provider_id',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ 'matchers' => [
+ '/^(?providers\/[^\/]+)$/',
+ ],
+ ],
+ ],
+ ],
+ 'GetDeliveryVehicle' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle',
+ 'headerParams' => [
+ [
+ 'keyName' => 'provider_id',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ 'matchers' => [
+ '/^(?providers\/[^\/]+)$/',
+ ],
+ ],
+ ],
+ ],
+ 'GetTask' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Maps\FleetEngine\Delivery\V1\Task',
+ 'headerParams' => [
+ [
+ 'keyName' => 'provider_id',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ 'matchers' => [
+ '/^(?providers\/[^\/]+)$/',
+ ],
+ ],
+ ],
+ ],
+ 'GetTaskTrackingInfo' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Maps\FleetEngine\Delivery\V1\TaskTrackingInfo',
+ 'headerParams' => [
+ [
+ 'keyName' => 'provider_id',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ 'matchers' => [
+ '/^(?providers\/[^\/]+)$/',
+ ],
+ ],
+ ],
+ ],
+ 'ListDeliveryVehicles' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getDeliveryVehicles',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Maps\FleetEngine\Delivery\V1\ListDeliveryVehiclesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'provider_id',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ 'matchers' => [
+ '/^(?providers\/[^\/]+)$/',
+ ],
+ ],
+ ],
+ ],
+ 'ListTasks' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getTasks',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Maps\FleetEngine\Delivery\V1\ListTasksResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'provider_id',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ 'matchers' => [
+ '/^(?providers\/[^\/]+)$/',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateDeliveryVehicle' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Maps\FleetEngine\Delivery\V1\DeliveryVehicle',
+ 'headerParams' => [
+ [
+ 'keyName' => 'provider_id',
+ 'fieldAccessors' => [
+ 'getDeliveryVehicle',
+ 'getName',
+ ],
+ 'matchers' => [
+ '/^(?providers\/[^\/]+)$/',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateTask' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Maps\FleetEngine\Delivery\V1\Task',
+ 'headerParams' => [
+ [
+ 'keyName' => 'provider_id',
+ 'fieldAccessors' => [
+ 'getTask',
+ 'getName',
+ ],
+ 'matchers' => [
+ '/^(?providers\/[^\/]+)$/',
+ ],
+ ],
+ ],
+ ],
+ 'templateMap' => [
+ 'deliveryVehicle' => 'providers/{provider}/deliveryVehicles/{vehicle}',
+ 'provider' => 'providers/{provider}',
+ 'task' => 'providers/{provider}/tasks/{task}',
+ 'taskTrackingInfo' => 'providers/{provider}/taskTrackingInfo/{tracking}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/src/V1/resources/delivery_service_rest_client_config.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/src/V1/resources/delivery_service_rest_client_config.php
new file mode 100644
index 000000000000..66575bc17381
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/src/V1/resources/delivery_service_rest_client_config.php
@@ -0,0 +1,158 @@
+ [
+ 'maps.fleetengine.delivery.v1.DeliveryService' => [
+ 'BatchCreateTasks' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=providers/*}/tasks:batchCreate',
+ 'body' => '*',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateDeliveryVehicle' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=providers/*}/deliveryVehicles',
+ 'body' => 'delivery_vehicle',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'delivery_vehicle_id',
+ ],
+ ],
+ 'CreateTask' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=providers/*}/tasks',
+ 'body' => 'task',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'task_id',
+ ],
+ ],
+ 'GetDeliveryVehicle' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=providers/*/deliveryVehicles/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetTask' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=providers/*/tasks/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetTaskTrackingInfo' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=providers/*/taskTrackingInfo/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListDeliveryVehicles' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=providers/*}/deliveryVehicles',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListTasks' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=providers/*}/tasks',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateDeliveryVehicle' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{delivery_vehicle.name=providers/*/deliveryVehicles/*}',
+ 'body' => 'delivery_vehicle',
+ 'placeholders' => [
+ 'delivery_vehicle.name' => [
+ 'getters' => [
+ 'getDeliveryVehicle',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateTask' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{task.name=providers/*/tasks/*}',
+ 'body' => 'task',
+ 'placeholders' => [
+ 'task.name' => [
+ 'getters' => [
+ 'getTask',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/MapsFleetEngineDelivery/v1/tests/Unit/V1/Client/DeliveryServiceClientTest.php b/owl-bot-staging/MapsFleetEngineDelivery/v1/tests/Unit/V1/Client/DeliveryServiceClientTest.php
new file mode 100644
index 000000000000..0e341373cb40
--- /dev/null
+++ b/owl-bot-staging/MapsFleetEngineDelivery/v1/tests/Unit/V1/Client/DeliveryServiceClientTest.php
@@ -0,0 +1,855 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return DeliveryServiceClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new DeliveryServiceClient($options);
+ }
+
+ /** @test */
+ public function batchCreateTasksTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new BatchCreateTasksResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->providerName('[PROVIDER]');
+ $requests = [];
+ $request = (new BatchCreateTasksRequest())
+ ->setParent($formattedParent)
+ ->setRequests($requests);
+ $response = $gapicClient->batchCreateTasks($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/maps.fleetengine.delivery.v1.DeliveryService/BatchCreateTasks', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getRequests();
+ $this->assertProtobufEquals($requests, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function batchCreateTasksExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->providerName('[PROVIDER]');
+ $requests = [];
+ $request = (new BatchCreateTasksRequest())
+ ->setParent($formattedParent)
+ ->setRequests($requests);
+ try {
+ $gapicClient->batchCreateTasks($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createDeliveryVehicleTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $currentRouteSegment = '-9';
+ $expectedResponse = new DeliveryVehicle();
+ $expectedResponse->setName($name);
+ $expectedResponse->setCurrentRouteSegment($currentRouteSegment);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $parent = 'parent-995424086';
+ $deliveryVehicleId = 'deliveryVehicleId-1069581255';
+ $deliveryVehicle = new DeliveryVehicle();
+ $request = (new CreateDeliveryVehicleRequest())
+ ->setParent($parent)
+ ->setDeliveryVehicleId($deliveryVehicleId)
+ ->setDeliveryVehicle($deliveryVehicle);
+ $response = $gapicClient->createDeliveryVehicle($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/maps.fleetengine.delivery.v1.DeliveryService/CreateDeliveryVehicle', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($parent, $actualValue);
+ $actualValue = $actualRequestObject->getDeliveryVehicleId();
+ $this->assertProtobufEquals($deliveryVehicleId, $actualValue);
+ $actualValue = $actualRequestObject->getDeliveryVehicle();
+ $this->assertProtobufEquals($deliveryVehicle, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createDeliveryVehicleExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $parent = 'parent-995424086';
+ $deliveryVehicleId = 'deliveryVehicleId-1069581255';
+ $deliveryVehicle = new DeliveryVehicle();
+ $request = (new CreateDeliveryVehicleRequest())
+ ->setParent($parent)
+ ->setDeliveryVehicleId($deliveryVehicleId)
+ ->setDeliveryVehicle($deliveryVehicle);
+ try {
+ $gapicClient->createDeliveryVehicle($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createTaskTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $trackingId = 'trackingId1878901667';
+ $deliveryVehicleId = 'deliveryVehicleId-1069581255';
+ $expectedResponse = new Task();
+ $expectedResponse->setName($name);
+ $expectedResponse->setTrackingId($trackingId);
+ $expectedResponse->setDeliveryVehicleId($deliveryVehicleId);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $parent = 'parent-995424086';
+ $taskId = 'taskId-1537240555';
+ $task = new Task();
+ $taskType = Type::TYPE_UNSPECIFIED;
+ $task->setType($taskType);
+ $taskState = State::STATE_UNSPECIFIED;
+ $task->setState($taskState);
+ $taskTaskDuration = new Duration();
+ $task->setTaskDuration($taskTaskDuration);
+ $request = (new CreateTaskRequest())
+ ->setParent($parent)
+ ->setTaskId($taskId)
+ ->setTask($task);
+ $response = $gapicClient->createTask($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/maps.fleetengine.delivery.v1.DeliveryService/CreateTask', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($parent, $actualValue);
+ $actualValue = $actualRequestObject->getTaskId();
+ $this->assertProtobufEquals($taskId, $actualValue);
+ $actualValue = $actualRequestObject->getTask();
+ $this->assertProtobufEquals($task, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createTaskExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $parent = 'parent-995424086';
+ $taskId = 'taskId-1537240555';
+ $task = new Task();
+ $taskType = Type::TYPE_UNSPECIFIED;
+ $task->setType($taskType);
+ $taskState = State::STATE_UNSPECIFIED;
+ $task->setState($taskState);
+ $taskTaskDuration = new Duration();
+ $task->setTaskDuration($taskTaskDuration);
+ $request = (new CreateTaskRequest())
+ ->setParent($parent)
+ ->setTaskId($taskId)
+ ->setTask($task);
+ try {
+ $gapicClient->createTask($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getDeliveryVehicleTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $currentRouteSegment = '-9';
+ $expectedResponse = new DeliveryVehicle();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setCurrentRouteSegment($currentRouteSegment);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->deliveryVehicleName('[PROVIDER]', '[VEHICLE]');
+ $request = (new GetDeliveryVehicleRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getDeliveryVehicle($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/maps.fleetengine.delivery.v1.DeliveryService/GetDeliveryVehicle', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getDeliveryVehicleExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->deliveryVehicleName('[PROVIDER]', '[VEHICLE]');
+ $request = (new GetDeliveryVehicleRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getDeliveryVehicle($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getTaskTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $trackingId = 'trackingId1878901667';
+ $deliveryVehicleId = 'deliveryVehicleId-1069581255';
+ $expectedResponse = new Task();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setTrackingId($trackingId);
+ $expectedResponse->setDeliveryVehicleId($deliveryVehicleId);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->taskName('[PROVIDER]', '[TASK]');
+ $request = (new GetTaskRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getTask($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/maps.fleetengine.delivery.v1.DeliveryService/GetTask', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getTaskExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->taskName('[PROVIDER]', '[TASK]');
+ $request = (new GetTaskRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getTask($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getTaskTrackingInfoTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $trackingId = 'trackingId1878901667';
+ $expectedResponse = new TaskTrackingInfo();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setTrackingId($trackingId);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->taskTrackingInfoName('[PROVIDER]', '[TRACKING]');
+ $request = (new GetTaskTrackingInfoRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getTaskTrackingInfo($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/maps.fleetengine.delivery.v1.DeliveryService/GetTaskTrackingInfo', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getTaskTrackingInfoExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->taskTrackingInfoName('[PROVIDER]', '[TRACKING]');
+ $request = (new GetTaskTrackingInfoRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getTaskTrackingInfo($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listDeliveryVehiclesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $totalSize = 705419236;
+ $deliveryVehiclesElement = new DeliveryVehicle();
+ $deliveryVehicles = [
+ $deliveryVehiclesElement,
+ ];
+ $expectedResponse = new ListDeliveryVehiclesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setTotalSize($totalSize);
+ $expectedResponse->setDeliveryVehicles($deliveryVehicles);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->providerName('[PROVIDER]');
+ $request = (new ListDeliveryVehiclesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listDeliveryVehicles($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getDeliveryVehicles()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/maps.fleetengine.delivery.v1.DeliveryService/ListDeliveryVehicles', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listDeliveryVehiclesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->providerName('[PROVIDER]');
+ $request = (new ListDeliveryVehiclesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listDeliveryVehicles($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listTasksTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $totalSize = 705419236;
+ $tasksElement = new Task();
+ $tasks = [
+ $tasksElement,
+ ];
+ $expectedResponse = new ListTasksResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setTotalSize($totalSize);
+ $expectedResponse->setTasks($tasks);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->providerName('[PROVIDER]');
+ $request = (new ListTasksRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listTasks($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getTasks()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/maps.fleetengine.delivery.v1.DeliveryService/ListTasks', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listTasksExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->providerName('[PROVIDER]');
+ $request = (new ListTasksRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listTasks($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateDeliveryVehicleTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $currentRouteSegment = '-9';
+ $expectedResponse = new DeliveryVehicle();
+ $expectedResponse->setName($name);
+ $expectedResponse->setCurrentRouteSegment($currentRouteSegment);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $deliveryVehicle = new DeliveryVehicle();
+ $updateMask = new FieldMask();
+ $request = (new UpdateDeliveryVehicleRequest())
+ ->setDeliveryVehicle($deliveryVehicle)
+ ->setUpdateMask($updateMask);
+ $response = $gapicClient->updateDeliveryVehicle($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/maps.fleetengine.delivery.v1.DeliveryService/UpdateDeliveryVehicle', $actualFuncCall);
+ $actualValue = $actualRequestObject->getDeliveryVehicle();
+ $this->assertProtobufEquals($deliveryVehicle, $actualValue);
+ $actualValue = $actualRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateDeliveryVehicleExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $deliveryVehicle = new DeliveryVehicle();
+ $updateMask = new FieldMask();
+ $request = (new UpdateDeliveryVehicleRequest())
+ ->setDeliveryVehicle($deliveryVehicle)
+ ->setUpdateMask($updateMask);
+ try {
+ $gapicClient->updateDeliveryVehicle($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateTaskTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $trackingId = 'trackingId1878901667';
+ $deliveryVehicleId = 'deliveryVehicleId-1069581255';
+ $expectedResponse = new Task();
+ $expectedResponse->setName($name);
+ $expectedResponse->setTrackingId($trackingId);
+ $expectedResponse->setDeliveryVehicleId($deliveryVehicleId);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $task = new Task();
+ $taskType = Type::TYPE_UNSPECIFIED;
+ $task->setType($taskType);
+ $taskState = State::STATE_UNSPECIFIED;
+ $task->setState($taskState);
+ $taskTaskDuration = new Duration();
+ $task->setTaskDuration($taskTaskDuration);
+ $updateMask = new FieldMask();
+ $request = (new UpdateTaskRequest())
+ ->setTask($task)
+ ->setUpdateMask($updateMask);
+ $response = $gapicClient->updateTask($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/maps.fleetengine.delivery.v1.DeliveryService/UpdateTask', $actualFuncCall);
+ $actualValue = $actualRequestObject->getTask();
+ $this->assertProtobufEquals($task, $actualValue);
+ $actualValue = $actualRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateTaskExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $task = new Task();
+ $taskType = Type::TYPE_UNSPECIFIED;
+ $task->setType($taskType);
+ $taskState = State::STATE_UNSPECIFIED;
+ $task->setState($taskState);
+ $taskTaskDuration = new Duration();
+ $task->setTaskDuration($taskTaskDuration);
+ $updateMask = new FieldMask();
+ $request = (new UpdateTaskRequest())
+ ->setTask($task)
+ ->setUpdateMask($updateMask);
+ try {
+ $gapicClient->updateTask($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function batchCreateTasksAsyncTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new BatchCreateTasksResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->providerName('[PROVIDER]');
+ $requests = [];
+ $request = (new BatchCreateTasksRequest())
+ ->setParent($formattedParent)
+ ->setRequests($requests);
+ $response = $gapicClient->batchCreateTasksAsync($request)->wait();
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/maps.fleetengine.delivery.v1.DeliveryService/BatchCreateTasks', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getRequests();
+ $this->assertProtobufEquals($requests, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/GPBMetadata/Google/Maps/Routeoptimization/V1/RouteOptimizationService.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/GPBMetadata/Google/Maps/Routeoptimization/V1/RouteOptimizationService.php
new file mode 100644
index 000000000000..debefc2ef34e
Binary files /dev/null and b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/GPBMetadata/Google/Maps/Routeoptimization/V1/RouteOptimizationService.php differ
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/AggregatedMetrics.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/AggregatedMetrics.php
new file mode 100644
index 000000000000..a4e7c9fdc222
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/AggregatedMetrics.php
@@ -0,0 +1,454 @@
+google.maps.routeoptimization.v1.AggregatedMetrics
+ */
+class AggregatedMetrics extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Number of shipments performed. Note that a pickup and delivery pair only
+ * counts once.
+ *
+ * Generated from protobuf field int32 performed_shipment_count = 1;
+ */
+ protected $performed_shipment_count = 0;
+ /**
+ * Total travel duration for a route or a solution.
+ *
+ * Generated from protobuf field .google.protobuf.Duration travel_duration = 2;
+ */
+ protected $travel_duration = null;
+ /**
+ * Total wait duration for a route or a solution.
+ *
+ * Generated from protobuf field .google.protobuf.Duration wait_duration = 3;
+ */
+ protected $wait_duration = null;
+ /**
+ * Total delay duration for a route or a solution.
+ *
+ * Generated from protobuf field .google.protobuf.Duration delay_duration = 4;
+ */
+ protected $delay_duration = null;
+ /**
+ * Total break duration for a route or a solution.
+ *
+ * Generated from protobuf field .google.protobuf.Duration break_duration = 5;
+ */
+ protected $break_duration = null;
+ /**
+ * Total visit duration for a route or a solution.
+ *
+ * Generated from protobuf field .google.protobuf.Duration visit_duration = 6;
+ */
+ protected $visit_duration = null;
+ /**
+ * The total duration should be equal to the sum of all durations above.
+ * For routes, it also corresponds to:
+ * ```
+ * [ShipmentRoute.vehicle_end_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_end_time]
+ * -
+ * [ShipmentRoute.vehicle_start_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_start_time]
+ * ```
+ *
+ * Generated from protobuf field .google.protobuf.Duration total_duration = 7;
+ */
+ protected $total_duration = null;
+ /**
+ * Total travel distance for a route or a solution.
+ *
+ * Generated from protobuf field double travel_distance_meters = 8;
+ */
+ protected $travel_distance_meters = 0.0;
+ /**
+ * Maximum load achieved over the entire route (resp. solution), for each of
+ * the quantities on this route (resp. solution), computed as the maximum over
+ * all
+ * [Transition.vehicle_loads][google.maps.routeoptimization.v1.ShipmentRoute.Transition.vehicle_loads]
+ * (resp.
+ * [ShipmentRoute.metrics.max_loads][google.maps.routeoptimization.v1.AggregatedMetrics.max_loads].
+ *
+ * Generated from protobuf field map max_loads = 9;
+ */
+ private $max_loads;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $performed_shipment_count
+ * Number of shipments performed. Note that a pickup and delivery pair only
+ * counts once.
+ * @type \Google\Protobuf\Duration $travel_duration
+ * Total travel duration for a route or a solution.
+ * @type \Google\Protobuf\Duration $wait_duration
+ * Total wait duration for a route or a solution.
+ * @type \Google\Protobuf\Duration $delay_duration
+ * Total delay duration for a route or a solution.
+ * @type \Google\Protobuf\Duration $break_duration
+ * Total break duration for a route or a solution.
+ * @type \Google\Protobuf\Duration $visit_duration
+ * Total visit duration for a route or a solution.
+ * @type \Google\Protobuf\Duration $total_duration
+ * The total duration should be equal to the sum of all durations above.
+ * For routes, it also corresponds to:
+ * ```
+ * [ShipmentRoute.vehicle_end_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_end_time]
+ * -
+ * [ShipmentRoute.vehicle_start_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_start_time]
+ * ```
+ * @type float $travel_distance_meters
+ * Total travel distance for a route or a solution.
+ * @type array|\Google\Protobuf\Internal\MapField $max_loads
+ * Maximum load achieved over the entire route (resp. solution), for each of
+ * the quantities on this route (resp. solution), computed as the maximum over
+ * all
+ * [Transition.vehicle_loads][google.maps.routeoptimization.v1.ShipmentRoute.Transition.vehicle_loads]
+ * (resp.
+ * [ShipmentRoute.metrics.max_loads][google.maps.routeoptimization.v1.AggregatedMetrics.max_loads].
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Number of shipments performed. Note that a pickup and delivery pair only
+ * counts once.
+ *
+ * Generated from protobuf field int32 performed_shipment_count = 1;
+ * @return int
+ */
+ public function getPerformedShipmentCount()
+ {
+ return $this->performed_shipment_count;
+ }
+
+ /**
+ * Number of shipments performed. Note that a pickup and delivery pair only
+ * counts once.
+ *
+ * Generated from protobuf field int32 performed_shipment_count = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setPerformedShipmentCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->performed_shipment_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Total travel duration for a route or a solution.
+ *
+ * Generated from protobuf field .google.protobuf.Duration travel_duration = 2;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getTravelDuration()
+ {
+ return $this->travel_duration;
+ }
+
+ public function hasTravelDuration()
+ {
+ return isset($this->travel_duration);
+ }
+
+ public function clearTravelDuration()
+ {
+ unset($this->travel_duration);
+ }
+
+ /**
+ * Total travel duration for a route or a solution.
+ *
+ * Generated from protobuf field .google.protobuf.Duration travel_duration = 2;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setTravelDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->travel_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Total wait duration for a route or a solution.
+ *
+ * Generated from protobuf field .google.protobuf.Duration wait_duration = 3;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getWaitDuration()
+ {
+ return $this->wait_duration;
+ }
+
+ public function hasWaitDuration()
+ {
+ return isset($this->wait_duration);
+ }
+
+ public function clearWaitDuration()
+ {
+ unset($this->wait_duration);
+ }
+
+ /**
+ * Total wait duration for a route or a solution.
+ *
+ * Generated from protobuf field .google.protobuf.Duration wait_duration = 3;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setWaitDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->wait_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Total delay duration for a route or a solution.
+ *
+ * Generated from protobuf field .google.protobuf.Duration delay_duration = 4;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getDelayDuration()
+ {
+ return $this->delay_duration;
+ }
+
+ public function hasDelayDuration()
+ {
+ return isset($this->delay_duration);
+ }
+
+ public function clearDelayDuration()
+ {
+ unset($this->delay_duration);
+ }
+
+ /**
+ * Total delay duration for a route or a solution.
+ *
+ * Generated from protobuf field .google.protobuf.Duration delay_duration = 4;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setDelayDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->delay_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Total break duration for a route or a solution.
+ *
+ * Generated from protobuf field .google.protobuf.Duration break_duration = 5;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getBreakDuration()
+ {
+ return $this->break_duration;
+ }
+
+ public function hasBreakDuration()
+ {
+ return isset($this->break_duration);
+ }
+
+ public function clearBreakDuration()
+ {
+ unset($this->break_duration);
+ }
+
+ /**
+ * Total break duration for a route or a solution.
+ *
+ * Generated from protobuf field .google.protobuf.Duration break_duration = 5;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setBreakDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->break_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Total visit duration for a route or a solution.
+ *
+ * Generated from protobuf field .google.protobuf.Duration visit_duration = 6;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getVisitDuration()
+ {
+ return $this->visit_duration;
+ }
+
+ public function hasVisitDuration()
+ {
+ return isset($this->visit_duration);
+ }
+
+ public function clearVisitDuration()
+ {
+ unset($this->visit_duration);
+ }
+
+ /**
+ * Total visit duration for a route or a solution.
+ *
+ * Generated from protobuf field .google.protobuf.Duration visit_duration = 6;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setVisitDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->visit_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * The total duration should be equal to the sum of all durations above.
+ * For routes, it also corresponds to:
+ * ```
+ * [ShipmentRoute.vehicle_end_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_end_time]
+ * -
+ * [ShipmentRoute.vehicle_start_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_start_time]
+ * ```
+ *
+ * Generated from protobuf field .google.protobuf.Duration total_duration = 7;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getTotalDuration()
+ {
+ return $this->total_duration;
+ }
+
+ public function hasTotalDuration()
+ {
+ return isset($this->total_duration);
+ }
+
+ public function clearTotalDuration()
+ {
+ unset($this->total_duration);
+ }
+
+ /**
+ * The total duration should be equal to the sum of all durations above.
+ * For routes, it also corresponds to:
+ * ```
+ * [ShipmentRoute.vehicle_end_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_end_time]
+ * -
+ * [ShipmentRoute.vehicle_start_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_start_time]
+ * ```
+ *
+ * Generated from protobuf field .google.protobuf.Duration total_duration = 7;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setTotalDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->total_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Total travel distance for a route or a solution.
+ *
+ * Generated from protobuf field double travel_distance_meters = 8;
+ * @return float
+ */
+ public function getTravelDistanceMeters()
+ {
+ return $this->travel_distance_meters;
+ }
+
+ /**
+ * Total travel distance for a route or a solution.
+ *
+ * Generated from protobuf field double travel_distance_meters = 8;
+ * @param float $var
+ * @return $this
+ */
+ public function setTravelDistanceMeters($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->travel_distance_meters = $var;
+
+ return $this;
+ }
+
+ /**
+ * Maximum load achieved over the entire route (resp. solution), for each of
+ * the quantities on this route (resp. solution), computed as the maximum over
+ * all
+ * [Transition.vehicle_loads][google.maps.routeoptimization.v1.ShipmentRoute.Transition.vehicle_loads]
+ * (resp.
+ * [ShipmentRoute.metrics.max_loads][google.maps.routeoptimization.v1.AggregatedMetrics.max_loads].
+ *
+ * Generated from protobuf field map max_loads = 9;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getMaxLoads()
+ {
+ return $this->max_loads;
+ }
+
+ /**
+ * Maximum load achieved over the entire route (resp. solution), for each of
+ * the quantities on this route (resp. solution), computed as the maximum over
+ * all
+ * [Transition.vehicle_loads][google.maps.routeoptimization.v1.ShipmentRoute.Transition.vehicle_loads]
+ * (resp.
+ * [ShipmentRoute.metrics.max_loads][google.maps.routeoptimization.v1.AggregatedMetrics.max_loads].
+ *
+ * Generated from protobuf field map max_loads = 9;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setMaxLoads($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\ShipmentRoute\VehicleLoad::class);
+ $this->max_loads = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BatchOptimizeToursMetadata.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BatchOptimizeToursMetadata.php
new file mode 100644
index 000000000000..50b825aa8a7e
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BatchOptimizeToursMetadata.php
@@ -0,0 +1,33 @@
+google.maps.routeoptimization.v1.BatchOptimizeToursMetadata
+ */
+class BatchOptimizeToursMetadata extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BatchOptimizeToursRequest.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BatchOptimizeToursRequest.php
new file mode 100644
index 000000000000..3c9fbf3f7c0d
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BatchOptimizeToursRequest.php
@@ -0,0 +1,125 @@
+google.maps.routeoptimization.v1.BatchOptimizeToursRequest
+ */
+class BatchOptimizeToursRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Target project and location to make a call.
+ * Format:
+ * * `projects/{project-id}`
+ * * `projects/{project-id}/locations/{location-id}`
+ * If no location is specified, a region will be chosen automatically.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $parent = '';
+ /**
+ * Required. Input/Output information each purchase model, such as file paths
+ * and data formats.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.BatchOptimizeToursRequest.AsyncModelConfig model_configs = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $model_configs;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Target project and location to make a call.
+ * Format:
+ * * `projects/{project-id}`
+ * * `projects/{project-id}/locations/{location-id}`
+ * If no location is specified, a region will be chosen automatically.
+ * @type array<\Google\Maps\RouteOptimization\V1\BatchOptimizeToursRequest\AsyncModelConfig>|\Google\Protobuf\Internal\RepeatedField $model_configs
+ * Required. Input/Output information each purchase model, such as file paths
+ * and data formats.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Target project and location to make a call.
+ * Format:
+ * * `projects/{project-id}`
+ * * `projects/{project-id}/locations/{location-id}`
+ * If no location is specified, a region will be chosen automatically.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Target project and location to make a call.
+ * Format:
+ * * `projects/{project-id}`
+ * * `projects/{project-id}/locations/{location-id}`
+ * If no location is specified, a region will be chosen automatically.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Input/Output information each purchase model, such as file paths
+ * and data formats.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.BatchOptimizeToursRequest.AsyncModelConfig model_configs = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getModelConfigs()
+ {
+ return $this->model_configs;
+ }
+
+ /**
+ * Required. Input/Output information each purchase model, such as file paths
+ * and data formats.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.BatchOptimizeToursRequest.AsyncModelConfig model_configs = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param array<\Google\Maps\RouteOptimization\V1\BatchOptimizeToursRequest\AsyncModelConfig>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setModelConfigs($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\BatchOptimizeToursRequest\AsyncModelConfig::class);
+ $this->model_configs = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BatchOptimizeToursRequest/AsyncModelConfig.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BatchOptimizeToursRequest/AsyncModelConfig.php
new file mode 100644
index 000000000000..9f323a5cd726
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BatchOptimizeToursRequest/AsyncModelConfig.php
@@ -0,0 +1,162 @@
+google.maps.routeoptimization.v1.BatchOptimizeToursRequest.AsyncModelConfig
+ */
+class AsyncModelConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. User defined model name, can be used as alias by users to keep
+ * track of models.
+ *
+ * Generated from protobuf field string display_name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $display_name = '';
+ /**
+ * Required. Information about the input model.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.InputConfig input_config = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $input_config = null;
+ /**
+ * Required. The desired output location information.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.OutputConfig output_config = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $output_config = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $display_name
+ * Optional. User defined model name, can be used as alias by users to keep
+ * track of models.
+ * @type \Google\Maps\RouteOptimization\V1\InputConfig $input_config
+ * Required. Information about the input model.
+ * @type \Google\Maps\RouteOptimization\V1\OutputConfig $output_config
+ * Required. The desired output location information.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. User defined model name, can be used as alias by users to keep
+ * track of models.
+ *
+ * Generated from protobuf field string display_name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * Optional. User defined model name, can be used as alias by users to keep
+ * track of models.
+ *
+ * Generated from protobuf field string display_name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Information about the input model.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.InputConfig input_config = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Maps\RouteOptimization\V1\InputConfig|null
+ */
+ public function getInputConfig()
+ {
+ return $this->input_config;
+ }
+
+ public function hasInputConfig()
+ {
+ return isset($this->input_config);
+ }
+
+ public function clearInputConfig()
+ {
+ unset($this->input_config);
+ }
+
+ /**
+ * Required. Information about the input model.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.InputConfig input_config = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Maps\RouteOptimization\V1\InputConfig $var
+ * @return $this
+ */
+ public function setInputConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\InputConfig::class);
+ $this->input_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The desired output location information.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.OutputConfig output_config = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Maps\RouteOptimization\V1\OutputConfig|null
+ */
+ public function getOutputConfig()
+ {
+ return $this->output_config;
+ }
+
+ public function hasOutputConfig()
+ {
+ return isset($this->output_config);
+ }
+
+ public function clearOutputConfig()
+ {
+ unset($this->output_config);
+ }
+
+ /**
+ * Required. The desired output location information.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.OutputConfig output_config = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Maps\RouteOptimization\V1\OutputConfig $var
+ * @return $this
+ */
+ public function setOutputConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\OutputConfig::class);
+ $this->output_config = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(AsyncModelConfig::class, \Google\Maps\RouteOptimization\V1\BatchOptimizeToursRequest_AsyncModelConfig::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BatchOptimizeToursResponse.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BatchOptimizeToursResponse.php
new file mode 100644
index 000000000000..2b0e02bf139a
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BatchOptimizeToursResponse.php
@@ -0,0 +1,34 @@
+google.maps.routeoptimization.v1.BatchOptimizeToursResponse
+ */
+class BatchOptimizeToursResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BreakRule.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BreakRule.php
new file mode 100644
index 000000000000..500ac900d732
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BreakRule.php
@@ -0,0 +1,113 @@
+google.maps.routeoptimization.v1.BreakRule
+ */
+class BreakRule extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Sequence of breaks. See the `BreakRequest` message.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.BreakRule.BreakRequest break_requests = 1;
+ */
+ private $break_requests;
+ /**
+ * Several `FrequencyConstraint` may apply. They must all be satisfied by
+ * the `BreakRequest`s of this `BreakRule`. See `FrequencyConstraint`.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.BreakRule.FrequencyConstraint frequency_constraints = 2;
+ */
+ private $frequency_constraints;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Maps\RouteOptimization\V1\BreakRule\BreakRequest>|\Google\Protobuf\Internal\RepeatedField $break_requests
+ * Sequence of breaks. See the `BreakRequest` message.
+ * @type array<\Google\Maps\RouteOptimization\V1\BreakRule\FrequencyConstraint>|\Google\Protobuf\Internal\RepeatedField $frequency_constraints
+ * Several `FrequencyConstraint` may apply. They must all be satisfied by
+ * the `BreakRequest`s of this `BreakRule`. See `FrequencyConstraint`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Sequence of breaks. See the `BreakRequest` message.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.BreakRule.BreakRequest break_requests = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getBreakRequests()
+ {
+ return $this->break_requests;
+ }
+
+ /**
+ * Sequence of breaks. See the `BreakRequest` message.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.BreakRule.BreakRequest break_requests = 1;
+ * @param array<\Google\Maps\RouteOptimization\V1\BreakRule\BreakRequest>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setBreakRequests($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\BreakRule\BreakRequest::class);
+ $this->break_requests = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Several `FrequencyConstraint` may apply. They must all be satisfied by
+ * the `BreakRequest`s of this `BreakRule`. See `FrequencyConstraint`.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.BreakRule.FrequencyConstraint frequency_constraints = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getFrequencyConstraints()
+ {
+ return $this->frequency_constraints;
+ }
+
+ /**
+ * Several `FrequencyConstraint` may apply. They must all be satisfied by
+ * the `BreakRequest`s of this `BreakRule`. See `FrequencyConstraint`.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.BreakRule.FrequencyConstraint frequency_constraints = 2;
+ * @param array<\Google\Maps\RouteOptimization\V1\BreakRule\FrequencyConstraint>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setFrequencyConstraints($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\BreakRule\FrequencyConstraint::class);
+ $this->frequency_constraints = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BreakRule/BreakRequest.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BreakRule/BreakRequest.php
new file mode 100644
index 000000000000..3defefe05194
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BreakRule/BreakRequest.php
@@ -0,0 +1,172 @@
+google.maps.routeoptimization.v1.BreakRule.BreakRequest
+ */
+class BreakRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Lower bound (inclusive) on the start of the break.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp earliest_start_time = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $earliest_start_time = null;
+ /**
+ * Required. Upper bound (inclusive) on the start of the break.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp latest_start_time = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $latest_start_time = null;
+ /**
+ * Required. Minimum duration of the break. Must be positive.
+ *
+ * Generated from protobuf field .google.protobuf.Duration min_duration = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $min_duration = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $earliest_start_time
+ * Required. Lower bound (inclusive) on the start of the break.
+ * @type \Google\Protobuf\Timestamp $latest_start_time
+ * Required. Upper bound (inclusive) on the start of the break.
+ * @type \Google\Protobuf\Duration $min_duration
+ * Required. Minimum duration of the break. Must be positive.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Lower bound (inclusive) on the start of the break.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp earliest_start_time = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEarliestStartTime()
+ {
+ return $this->earliest_start_time;
+ }
+
+ public function hasEarliestStartTime()
+ {
+ return isset($this->earliest_start_time);
+ }
+
+ public function clearEarliestStartTime()
+ {
+ unset($this->earliest_start_time);
+ }
+
+ /**
+ * Required. Lower bound (inclusive) on the start of the break.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp earliest_start_time = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEarliestStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->earliest_start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Upper bound (inclusive) on the start of the break.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp latest_start_time = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getLatestStartTime()
+ {
+ return $this->latest_start_time;
+ }
+
+ public function hasLatestStartTime()
+ {
+ return isset($this->latest_start_time);
+ }
+
+ public function clearLatestStartTime()
+ {
+ unset($this->latest_start_time);
+ }
+
+ /**
+ * Required. Upper bound (inclusive) on the start of the break.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp latest_start_time = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setLatestStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->latest_start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Minimum duration of the break. Must be positive.
+ *
+ * Generated from protobuf field .google.protobuf.Duration min_duration = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getMinDuration()
+ {
+ return $this->min_duration;
+ }
+
+ public function hasMinDuration()
+ {
+ return isset($this->min_duration);
+ }
+
+ public function clearMinDuration()
+ {
+ unset($this->min_duration);
+ }
+
+ /**
+ * Required. Minimum duration of the break. Must be positive.
+ *
+ * Generated from protobuf field .google.protobuf.Duration min_duration = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setMinDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->min_duration = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(BreakRequest::class, \Google\Maps\RouteOptimization\V1\BreakRule_BreakRequest::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BreakRule/FrequencyConstraint.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BreakRule/FrequencyConstraint.php
new file mode 100644
index 000000000000..3a9cd80a9e6d
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/BreakRule/FrequencyConstraint.php
@@ -0,0 +1,166 @@
+google.maps.routeoptimization.v1.BreakRule.FrequencyConstraint
+ */
+class FrequencyConstraint extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Minimum break duration for this constraint. Nonnegative.
+ * See description of `FrequencyConstraint`.
+ *
+ * Generated from protobuf field .google.protobuf.Duration min_break_duration = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $min_break_duration = null;
+ /**
+ * Required. Maximum allowed span of any interval of time in the route that
+ * does not include at least partially a break of `duration >=
+ * min_break_duration`. Must be positive.
+ *
+ * Generated from protobuf field .google.protobuf.Duration max_inter_break_duration = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $max_inter_break_duration = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Duration $min_break_duration
+ * Required. Minimum break duration for this constraint. Nonnegative.
+ * See description of `FrequencyConstraint`.
+ * @type \Google\Protobuf\Duration $max_inter_break_duration
+ * Required. Maximum allowed span of any interval of time in the route that
+ * does not include at least partially a break of `duration >=
+ * min_break_duration`. Must be positive.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Minimum break duration for this constraint. Nonnegative.
+ * See description of `FrequencyConstraint`.
+ *
+ * Generated from protobuf field .google.protobuf.Duration min_break_duration = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getMinBreakDuration()
+ {
+ return $this->min_break_duration;
+ }
+
+ public function hasMinBreakDuration()
+ {
+ return isset($this->min_break_duration);
+ }
+
+ public function clearMinBreakDuration()
+ {
+ unset($this->min_break_duration);
+ }
+
+ /**
+ * Required. Minimum break duration for this constraint. Nonnegative.
+ * See description of `FrequencyConstraint`.
+ *
+ * Generated from protobuf field .google.protobuf.Duration min_break_duration = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setMinBreakDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->min_break_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Maximum allowed span of any interval of time in the route that
+ * does not include at least partially a break of `duration >=
+ * min_break_duration`. Must be positive.
+ *
+ * Generated from protobuf field .google.protobuf.Duration max_inter_break_duration = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getMaxInterBreakDuration()
+ {
+ return $this->max_inter_break_duration;
+ }
+
+ public function hasMaxInterBreakDuration()
+ {
+ return isset($this->max_inter_break_duration);
+ }
+
+ public function clearMaxInterBreakDuration()
+ {
+ unset($this->max_inter_break_duration);
+ }
+
+ /**
+ * Required. Maximum allowed span of any interval of time in the route that
+ * does not include at least partially a break of `duration >=
+ * min_break_duration`. Must be positive.
+ *
+ * Generated from protobuf field .google.protobuf.Duration max_inter_break_duration = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setMaxInterBreakDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->max_inter_break_duration = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(FrequencyConstraint::class, \Google\Maps\RouteOptimization\V1\BreakRule_FrequencyConstraint::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/DataFormat.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/DataFormat.php
new file mode 100644
index 000000000000..76303e93fb37
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/DataFormat.php
@@ -0,0 +1,62 @@
+google.maps.routeoptimization.v1.DataFormat
+ */
+class DataFormat
+{
+ /**
+ * Invalid value, format must not be UNSPECIFIED.
+ *
+ * Generated from protobuf enum DATA_FORMAT_UNSPECIFIED = 0;
+ */
+ const DATA_FORMAT_UNSPECIFIED = 0;
+ /**
+ * JavaScript Object Notation.
+ *
+ * Generated from protobuf enum JSON = 1;
+ */
+ const JSON = 1;
+ /**
+ * Protocol Buffers text format. See
+ * https://protobuf.dev/reference/protobuf/textformat-spec/
+ *
+ * Generated from protobuf enum PROTO_TEXT = 2;
+ */
+ const PROTO_TEXT = 2;
+
+ private static $valueToName = [
+ self::DATA_FORMAT_UNSPECIFIED => 'DATA_FORMAT_UNSPECIFIED',
+ self::JSON => 'JSON',
+ self::PROTO_TEXT => 'PROTO_TEXT',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/DistanceLimit.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/DistanceLimit.php
new file mode 100644
index 000000000000..a2ec284f830a
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/DistanceLimit.php
@@ -0,0 +1,284 @@
+google.maps.routeoptimization.v1.DistanceLimit
+ */
+class DistanceLimit extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A hard limit constraining the distance to be at most max_meters. The limit
+ * must be nonnegative.
+ *
+ * Generated from protobuf field optional int64 max_meters = 1;
+ */
+ protected $max_meters = null;
+ /**
+ * A soft limit not enforcing a maximum distance limit, but when violated
+ * results in a cost which adds up to other costs defined in the model,
+ * with the same unit.
+ * If defined soft_max_meters must be less than max_meters and must be
+ * nonnegative.
+ *
+ * Generated from protobuf field optional int64 soft_max_meters = 2;
+ */
+ protected $soft_max_meters = null;
+ /**
+ * Cost per kilometer incurred, increasing up to `soft_max_meters`, with
+ * formula:
+ * ```
+ * min(distance_meters, soft_max_meters) / 1000.0 *
+ * cost_per_kilometer_below_soft_max.
+ * ```
+ * This cost is not supported in `route_distance_limit`.
+ *
+ * Generated from protobuf field optional double cost_per_kilometer_below_soft_max = 4;
+ */
+ protected $cost_per_kilometer_below_soft_max = null;
+ /**
+ * Cost per kilometer incurred if distance is above `soft_max_meters` limit.
+ * The additional cost is 0 if the distance is under the limit, otherwise the
+ * formula used to compute the cost is the following:
+ * ```
+ * (distance_meters - soft_max_meters) / 1000.0 *
+ * cost_per_kilometer_above_soft_max.
+ * ```
+ * The cost must be nonnegative.
+ *
+ * Generated from protobuf field optional double cost_per_kilometer_above_soft_max = 3;
+ */
+ protected $cost_per_kilometer_above_soft_max = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $max_meters
+ * A hard limit constraining the distance to be at most max_meters. The limit
+ * must be nonnegative.
+ * @type int|string $soft_max_meters
+ * A soft limit not enforcing a maximum distance limit, but when violated
+ * results in a cost which adds up to other costs defined in the model,
+ * with the same unit.
+ * If defined soft_max_meters must be less than max_meters and must be
+ * nonnegative.
+ * @type float $cost_per_kilometer_below_soft_max
+ * Cost per kilometer incurred, increasing up to `soft_max_meters`, with
+ * formula:
+ * ```
+ * min(distance_meters, soft_max_meters) / 1000.0 *
+ * cost_per_kilometer_below_soft_max.
+ * ```
+ * This cost is not supported in `route_distance_limit`.
+ * @type float $cost_per_kilometer_above_soft_max
+ * Cost per kilometer incurred if distance is above `soft_max_meters` limit.
+ * The additional cost is 0 if the distance is under the limit, otherwise the
+ * formula used to compute the cost is the following:
+ * ```
+ * (distance_meters - soft_max_meters) / 1000.0 *
+ * cost_per_kilometer_above_soft_max.
+ * ```
+ * The cost must be nonnegative.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A hard limit constraining the distance to be at most max_meters. The limit
+ * must be nonnegative.
+ *
+ * Generated from protobuf field optional int64 max_meters = 1;
+ * @return int|string
+ */
+ public function getMaxMeters()
+ {
+ return isset($this->max_meters) ? $this->max_meters : 0;
+ }
+
+ public function hasMaxMeters()
+ {
+ return isset($this->max_meters);
+ }
+
+ public function clearMaxMeters()
+ {
+ unset($this->max_meters);
+ }
+
+ /**
+ * A hard limit constraining the distance to be at most max_meters. The limit
+ * must be nonnegative.
+ *
+ * Generated from protobuf field optional int64 max_meters = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setMaxMeters($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->max_meters = $var;
+
+ return $this;
+ }
+
+ /**
+ * A soft limit not enforcing a maximum distance limit, but when violated
+ * results in a cost which adds up to other costs defined in the model,
+ * with the same unit.
+ * If defined soft_max_meters must be less than max_meters and must be
+ * nonnegative.
+ *
+ * Generated from protobuf field optional int64 soft_max_meters = 2;
+ * @return int|string
+ */
+ public function getSoftMaxMeters()
+ {
+ return isset($this->soft_max_meters) ? $this->soft_max_meters : 0;
+ }
+
+ public function hasSoftMaxMeters()
+ {
+ return isset($this->soft_max_meters);
+ }
+
+ public function clearSoftMaxMeters()
+ {
+ unset($this->soft_max_meters);
+ }
+
+ /**
+ * A soft limit not enforcing a maximum distance limit, but when violated
+ * results in a cost which adds up to other costs defined in the model,
+ * with the same unit.
+ * If defined soft_max_meters must be less than max_meters and must be
+ * nonnegative.
+ *
+ * Generated from protobuf field optional int64 soft_max_meters = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setSoftMaxMeters($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->soft_max_meters = $var;
+
+ return $this;
+ }
+
+ /**
+ * Cost per kilometer incurred, increasing up to `soft_max_meters`, with
+ * formula:
+ * ```
+ * min(distance_meters, soft_max_meters) / 1000.0 *
+ * cost_per_kilometer_below_soft_max.
+ * ```
+ * This cost is not supported in `route_distance_limit`.
+ *
+ * Generated from protobuf field optional double cost_per_kilometer_below_soft_max = 4;
+ * @return float
+ */
+ public function getCostPerKilometerBelowSoftMax()
+ {
+ return isset($this->cost_per_kilometer_below_soft_max) ? $this->cost_per_kilometer_below_soft_max : 0.0;
+ }
+
+ public function hasCostPerKilometerBelowSoftMax()
+ {
+ return isset($this->cost_per_kilometer_below_soft_max);
+ }
+
+ public function clearCostPerKilometerBelowSoftMax()
+ {
+ unset($this->cost_per_kilometer_below_soft_max);
+ }
+
+ /**
+ * Cost per kilometer incurred, increasing up to `soft_max_meters`, with
+ * formula:
+ * ```
+ * min(distance_meters, soft_max_meters) / 1000.0 *
+ * cost_per_kilometer_below_soft_max.
+ * ```
+ * This cost is not supported in `route_distance_limit`.
+ *
+ * Generated from protobuf field optional double cost_per_kilometer_below_soft_max = 4;
+ * @param float $var
+ * @return $this
+ */
+ public function setCostPerKilometerBelowSoftMax($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->cost_per_kilometer_below_soft_max = $var;
+
+ return $this;
+ }
+
+ /**
+ * Cost per kilometer incurred if distance is above `soft_max_meters` limit.
+ * The additional cost is 0 if the distance is under the limit, otherwise the
+ * formula used to compute the cost is the following:
+ * ```
+ * (distance_meters - soft_max_meters) / 1000.0 *
+ * cost_per_kilometer_above_soft_max.
+ * ```
+ * The cost must be nonnegative.
+ *
+ * Generated from protobuf field optional double cost_per_kilometer_above_soft_max = 3;
+ * @return float
+ */
+ public function getCostPerKilometerAboveSoftMax()
+ {
+ return isset($this->cost_per_kilometer_above_soft_max) ? $this->cost_per_kilometer_above_soft_max : 0.0;
+ }
+
+ public function hasCostPerKilometerAboveSoftMax()
+ {
+ return isset($this->cost_per_kilometer_above_soft_max);
+ }
+
+ public function clearCostPerKilometerAboveSoftMax()
+ {
+ unset($this->cost_per_kilometer_above_soft_max);
+ }
+
+ /**
+ * Cost per kilometer incurred if distance is above `soft_max_meters` limit.
+ * The additional cost is 0 if the distance is under the limit, otherwise the
+ * formula used to compute the cost is the following:
+ * ```
+ * (distance_meters - soft_max_meters) / 1000.0 *
+ * cost_per_kilometer_above_soft_max.
+ * ```
+ * The cost must be nonnegative.
+ *
+ * Generated from protobuf field optional double cost_per_kilometer_above_soft_max = 3;
+ * @param float $var
+ * @return $this
+ */
+ public function setCostPerKilometerAboveSoftMax($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->cost_per_kilometer_above_soft_max = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/GcsDestination.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/GcsDestination.php
new file mode 100644
index 000000000000..593d35570a86
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/GcsDestination.php
@@ -0,0 +1,68 @@
+google.maps.routeoptimization.v1.GcsDestination
+ */
+class GcsDestination extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Google Cloud Storage URI.
+ *
+ * Generated from protobuf field string uri = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $uri
+ * Required. Google Cloud Storage URI.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Google Cloud Storage URI.
+ *
+ * Generated from protobuf field string uri = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * Required. Google Cloud Storage URI.
+ *
+ * Generated from protobuf field string uri = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/GcsSource.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/GcsSource.php
new file mode 100644
index 000000000000..a4b7083b7252
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/GcsSource.php
@@ -0,0 +1,71 @@
+google.maps.routeoptimization.v1.GcsSource
+ */
+class GcsSource extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. URI of a Google Cloud Storage object with the format
+ * `gs://bucket/path/to/object`.
+ *
+ * Generated from protobuf field string uri = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $uri
+ * Required. URI of a Google Cloud Storage object with the format
+ * `gs://bucket/path/to/object`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. URI of a Google Cloud Storage object with the format
+ * `gs://bucket/path/to/object`.
+ *
+ * Generated from protobuf field string uri = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * Required. URI of a Google Cloud Storage object with the format
+ * `gs://bucket/path/to/object`.
+ *
+ * Generated from protobuf field string uri = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/InjectedSolutionConstraint.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/InjectedSolutionConstraint.php
new file mode 100644
index 000000000000..bfb8197f0531
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/InjectedSolutionConstraint.php
@@ -0,0 +1,156 @@
+google.maps.routeoptimization.v1.InjectedSolutionConstraint
+ */
+class InjectedSolutionConstraint extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Routes of the solution to inject. Some routes may be omitted from the
+ * original solution. The routes and skipped shipments must satisfy the basic
+ * validity assumptions listed for `injected_first_solution_routes`.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute routes = 1;
+ */
+ private $routes;
+ /**
+ * Skipped shipments of the solution to inject. Some may be omitted from the
+ * original solution. See the `routes` field.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.SkippedShipment skipped_shipments = 2;
+ */
+ private $skipped_shipments;
+ /**
+ * For zero or more groups of vehicles, specifies when and how much to relax
+ * constraints. If this field is empty, all non-empty vehicle routes are
+ * fully constrained.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation constraint_relaxations = 3;
+ */
+ private $constraint_relaxations;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Maps\RouteOptimization\V1\ShipmentRoute>|\Google\Protobuf\Internal\RepeatedField $routes
+ * Routes of the solution to inject. Some routes may be omitted from the
+ * original solution. The routes and skipped shipments must satisfy the basic
+ * validity assumptions listed for `injected_first_solution_routes`.
+ * @type array<\Google\Maps\RouteOptimization\V1\SkippedShipment>|\Google\Protobuf\Internal\RepeatedField $skipped_shipments
+ * Skipped shipments of the solution to inject. Some may be omitted from the
+ * original solution. See the `routes` field.
+ * @type array<\Google\Maps\RouteOptimization\V1\InjectedSolutionConstraint\ConstraintRelaxation>|\Google\Protobuf\Internal\RepeatedField $constraint_relaxations
+ * For zero or more groups of vehicles, specifies when and how much to relax
+ * constraints. If this field is empty, all non-empty vehicle routes are
+ * fully constrained.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Routes of the solution to inject. Some routes may be omitted from the
+ * original solution. The routes and skipped shipments must satisfy the basic
+ * validity assumptions listed for `injected_first_solution_routes`.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute routes = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRoutes()
+ {
+ return $this->routes;
+ }
+
+ /**
+ * Routes of the solution to inject. Some routes may be omitted from the
+ * original solution. The routes and skipped shipments must satisfy the basic
+ * validity assumptions listed for `injected_first_solution_routes`.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute routes = 1;
+ * @param array<\Google\Maps\RouteOptimization\V1\ShipmentRoute>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRoutes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\ShipmentRoute::class);
+ $this->routes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Skipped shipments of the solution to inject. Some may be omitted from the
+ * original solution. See the `routes` field.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.SkippedShipment skipped_shipments = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSkippedShipments()
+ {
+ return $this->skipped_shipments;
+ }
+
+ /**
+ * Skipped shipments of the solution to inject. Some may be omitted from the
+ * original solution. See the `routes` field.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.SkippedShipment skipped_shipments = 2;
+ * @param array<\Google\Maps\RouteOptimization\V1\SkippedShipment>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSkippedShipments($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\SkippedShipment::class);
+ $this->skipped_shipments = $arr;
+
+ return $this;
+ }
+
+ /**
+ * For zero or more groups of vehicles, specifies when and how much to relax
+ * constraints. If this field is empty, all non-empty vehicle routes are
+ * fully constrained.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation constraint_relaxations = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getConstraintRelaxations()
+ {
+ return $this->constraint_relaxations;
+ }
+
+ /**
+ * For zero or more groups of vehicles, specifies when and how much to relax
+ * constraints. If this field is empty, all non-empty vehicle routes are
+ * fully constrained.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation constraint_relaxations = 3;
+ * @param array<\Google\Maps\RouteOptimization\V1\InjectedSolutionConstraint\ConstraintRelaxation>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setConstraintRelaxations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\InjectedSolutionConstraint\ConstraintRelaxation::class);
+ $this->constraint_relaxations = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/InjectedSolutionConstraint/ConstraintRelaxation.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/InjectedSolutionConstraint/ConstraintRelaxation.php
new file mode 100644
index 000000000000..9f6a431bd350
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/InjectedSolutionConstraint/ConstraintRelaxation.php
@@ -0,0 +1,151 @@
+google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation
+ */
+class ConstraintRelaxation extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * All the visit constraint relaxations that will apply to visits on
+ * routes with vehicles in `vehicle_indices`.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation relaxations = 1;
+ */
+ private $relaxations;
+ /**
+ * Specifies the vehicle indices to which the visit constraint
+ * `relaxations` apply. If empty, this is considered the default and the
+ * `relaxations` apply to all vehicles that are not specified in other
+ * `constraint_relaxations`. There can be at most one default, i.e., at
+ * most one constraint relaxation field is allowed empty
+ * `vehicle_indices`. A vehicle index can only be listed once, even within
+ * several `constraint_relaxations`.
+ * A vehicle index is mapped the same as
+ * [ShipmentRoute.vehicle_index][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index],
+ * if `interpret_injected_solutions_using_labels` is true (see `fields`
+ * comment).
+ *
+ * Generated from protobuf field repeated int32 vehicle_indices = 2;
+ */
+ private $vehicle_indices;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Maps\RouteOptimization\V1\InjectedSolutionConstraint\ConstraintRelaxation\Relaxation>|\Google\Protobuf\Internal\RepeatedField $relaxations
+ * All the visit constraint relaxations that will apply to visits on
+ * routes with vehicles in `vehicle_indices`.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $vehicle_indices
+ * Specifies the vehicle indices to which the visit constraint
+ * `relaxations` apply. If empty, this is considered the default and the
+ * `relaxations` apply to all vehicles that are not specified in other
+ * `constraint_relaxations`. There can be at most one default, i.e., at
+ * most one constraint relaxation field is allowed empty
+ * `vehicle_indices`. A vehicle index can only be listed once, even within
+ * several `constraint_relaxations`.
+ * A vehicle index is mapped the same as
+ * [ShipmentRoute.vehicle_index][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index],
+ * if `interpret_injected_solutions_using_labels` is true (see `fields`
+ * comment).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * All the visit constraint relaxations that will apply to visits on
+ * routes with vehicles in `vehicle_indices`.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation relaxations = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRelaxations()
+ {
+ return $this->relaxations;
+ }
+
+ /**
+ * All the visit constraint relaxations that will apply to visits on
+ * routes with vehicles in `vehicle_indices`.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation relaxations = 1;
+ * @param array<\Google\Maps\RouteOptimization\V1\InjectedSolutionConstraint\ConstraintRelaxation\Relaxation>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRelaxations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\InjectedSolutionConstraint\ConstraintRelaxation\Relaxation::class);
+ $this->relaxations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Specifies the vehicle indices to which the visit constraint
+ * `relaxations` apply. If empty, this is considered the default and the
+ * `relaxations` apply to all vehicles that are not specified in other
+ * `constraint_relaxations`. There can be at most one default, i.e., at
+ * most one constraint relaxation field is allowed empty
+ * `vehicle_indices`. A vehicle index can only be listed once, even within
+ * several `constraint_relaxations`.
+ * A vehicle index is mapped the same as
+ * [ShipmentRoute.vehicle_index][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index],
+ * if `interpret_injected_solutions_using_labels` is true (see `fields`
+ * comment).
+ *
+ * Generated from protobuf field repeated int32 vehicle_indices = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getVehicleIndices()
+ {
+ return $this->vehicle_indices;
+ }
+
+ /**
+ * Specifies the vehicle indices to which the visit constraint
+ * `relaxations` apply. If empty, this is considered the default and the
+ * `relaxations` apply to all vehicles that are not specified in other
+ * `constraint_relaxations`. There can be at most one default, i.e., at
+ * most one constraint relaxation field is allowed empty
+ * `vehicle_indices`. A vehicle index can only be listed once, even within
+ * several `constraint_relaxations`.
+ * A vehicle index is mapped the same as
+ * [ShipmentRoute.vehicle_index][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index],
+ * if `interpret_injected_solutions_using_labels` is true (see `fields`
+ * comment).
+ *
+ * Generated from protobuf field repeated int32 vehicle_indices = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setVehicleIndices($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32);
+ $this->vehicle_indices = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ConstraintRelaxation::class, \Google\Maps\RouteOptimization\V1\InjectedSolutionConstraint_ConstraintRelaxation::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/InjectedSolutionConstraint/ConstraintRelaxation/Relaxation.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/InjectedSolutionConstraint/ConstraintRelaxation/Relaxation.php
new file mode 100644
index 000000000000..f8cb219682a8
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/InjectedSolutionConstraint/ConstraintRelaxation/Relaxation.php
@@ -0,0 +1,204 @@
+= relaxations(i).threshold_time` AND
+ * * `j + 1 >= relaxations(i).threshold_visit_count`
+ * Similarly, the vehicle start is relaxed to `relaxations(i).level` if it
+ * satisfies:
+ * * `vehicle_start_time >= relaxations(i).threshold_time` AND
+ * * `relaxations(i).threshold_visit_count == 0`
+ * and the vehicle end is relaxed to `relaxations(i).level` if it satisfies:
+ * * `vehicle_end_time >= relaxations(i).threshold_time` AND
+ * * `route.visits_size() + 1 >= relaxations(i).threshold_visit_count`
+ * To apply a relaxation level if a visit meets the `threshold_visit_count`
+ * OR the `threshold_time` add two `relaxations` with the same `level`:
+ * one with only `threshold_visit_count` set and the other with only
+ * `threshold_time` set. If a visit satisfies the conditions of multiple
+ * `relaxations`, the most relaxed level applies. As a result, from the
+ * vehicle start through the route visits in order to the vehicle end, the
+ * relaxation level becomes more relaxed: i.e., the relaxation level is
+ * non-decreasing as the route progresses.
+ * The timing and sequence of route visits that do not satisfy the
+ * threshold conditions of any `relaxations` are fully constrained
+ * and no visits may be inserted into these sequences. Also, if a
+ * vehicle start or end does not satisfy the conditions of any
+ * relaxation the time is fixed, unless the vehicle is empty.
+ *
+ * Generated from protobuf message google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation
+ */
+class Relaxation extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The constraint relaxation level that applies when the conditions
+ * at or after `threshold_time` AND at least `threshold_visit_count` are
+ * satisfied.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation.Level level = 1;
+ */
+ protected $level = 0;
+ /**
+ * The time at or after which the relaxation `level` may be applied.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp threshold_time = 2;
+ */
+ protected $threshold_time = null;
+ /**
+ * The number of visits at or after which the relaxation `level` may be
+ * applied. If `threshold_visit_count` is 0 (or unset), the `level` may be
+ * applied directly at the vehicle start.
+ * If it is `route.visits_size() + 1`, the `level` may only be applied to
+ * the vehicle end. If it is more than `route.visits_size() + 1`,
+ * `level` is not applied at all for that route.
+ *
+ * Generated from protobuf field int32 threshold_visit_count = 3;
+ */
+ protected $threshold_visit_count = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $level
+ * The constraint relaxation level that applies when the conditions
+ * at or after `threshold_time` AND at least `threshold_visit_count` are
+ * satisfied.
+ * @type \Google\Protobuf\Timestamp $threshold_time
+ * The time at or after which the relaxation `level` may be applied.
+ * @type int $threshold_visit_count
+ * The number of visits at or after which the relaxation `level` may be
+ * applied. If `threshold_visit_count` is 0 (or unset), the `level` may be
+ * applied directly at the vehicle start.
+ * If it is `route.visits_size() + 1`, the `level` may only be applied to
+ * the vehicle end. If it is more than `route.visits_size() + 1`,
+ * `level` is not applied at all for that route.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The constraint relaxation level that applies when the conditions
+ * at or after `threshold_time` AND at least `threshold_visit_count` are
+ * satisfied.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation.Level level = 1;
+ * @return int
+ */
+ public function getLevel()
+ {
+ return $this->level;
+ }
+
+ /**
+ * The constraint relaxation level that applies when the conditions
+ * at or after `threshold_time` AND at least `threshold_visit_count` are
+ * satisfied.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation.Level level = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setLevel($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\RouteOptimization\V1\InjectedSolutionConstraint\ConstraintRelaxation\Relaxation\Level::class);
+ $this->level = $var;
+
+ return $this;
+ }
+
+ /**
+ * The time at or after which the relaxation `level` may be applied.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp threshold_time = 2;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getThresholdTime()
+ {
+ return $this->threshold_time;
+ }
+
+ public function hasThresholdTime()
+ {
+ return isset($this->threshold_time);
+ }
+
+ public function clearThresholdTime()
+ {
+ unset($this->threshold_time);
+ }
+
+ /**
+ * The time at or after which the relaxation `level` may be applied.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp threshold_time = 2;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setThresholdTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->threshold_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The number of visits at or after which the relaxation `level` may be
+ * applied. If `threshold_visit_count` is 0 (or unset), the `level` may be
+ * applied directly at the vehicle start.
+ * If it is `route.visits_size() + 1`, the `level` may only be applied to
+ * the vehicle end. If it is more than `route.visits_size() + 1`,
+ * `level` is not applied at all for that route.
+ *
+ * Generated from protobuf field int32 threshold_visit_count = 3;
+ * @return int
+ */
+ public function getThresholdVisitCount()
+ {
+ return $this->threshold_visit_count;
+ }
+
+ /**
+ * The number of visits at or after which the relaxation `level` may be
+ * applied. If `threshold_visit_count` is 0 (or unset), the `level` may be
+ * applied directly at the vehicle start.
+ * If it is `route.visits_size() + 1`, the `level` may only be applied to
+ * the vehicle end. If it is more than `route.visits_size() + 1`,
+ * `level` is not applied at all for that route.
+ *
+ * Generated from protobuf field int32 threshold_visit_count = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setThresholdVisitCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->threshold_visit_count = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Relaxation::class, \Google\Maps\RouteOptimization\V1\InjectedSolutionConstraint_ConstraintRelaxation_Relaxation::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/InjectedSolutionConstraint/ConstraintRelaxation/Relaxation/Level.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/InjectedSolutionConstraint/ConstraintRelaxation/Relaxation/Level.php
new file mode 100644
index 000000000000..718a0dba2366
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/InjectedSolutionConstraint/ConstraintRelaxation/Relaxation/Level.php
@@ -0,0 +1,83 @@
+google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation.Level
+ */
+class Level
+{
+ /**
+ * Implicit default relaxation level: no constraints are relaxed,
+ * i.e., all visits are fully constrained.
+ * This value must not be explicitly used in `level`.
+ *
+ * Generated from protobuf enum LEVEL_UNSPECIFIED = 0;
+ */
+ const LEVEL_UNSPECIFIED = 0;
+ /**
+ * Visit start times and vehicle start/end times will be relaxed, but
+ * each visit remains bound to the same vehicle and the visit sequence
+ * must be observed: no visit can be inserted between them or before
+ * them.
+ *
+ * Generated from protobuf enum RELAX_VISIT_TIMES_AFTER_THRESHOLD = 1;
+ */
+ const RELAX_VISIT_TIMES_AFTER_THRESHOLD = 1;
+ /**
+ * Same as `RELAX_VISIT_TIMES_AFTER_THRESHOLD`, but the visit sequence
+ * is also relaxed: visits can only be performed by this vehicle, but
+ * can potentially become unperformed.
+ *
+ * Generated from protobuf enum RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD = 2;
+ */
+ const RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD = 2;
+ /**
+ * Same as `RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD`, but the
+ * vehicle is also relaxed: visits are completely free at or after the
+ * threshold time and can potentially become unperformed.
+ *
+ * Generated from protobuf enum RELAX_ALL_AFTER_THRESHOLD = 3;
+ */
+ const RELAX_ALL_AFTER_THRESHOLD = 3;
+
+ private static $valueToName = [
+ self::LEVEL_UNSPECIFIED => 'LEVEL_UNSPECIFIED',
+ self::RELAX_VISIT_TIMES_AFTER_THRESHOLD => 'RELAX_VISIT_TIMES_AFTER_THRESHOLD',
+ self::RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD => 'RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD',
+ self::RELAX_ALL_AFTER_THRESHOLD => 'RELAX_ALL_AFTER_THRESHOLD',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Level::class, \Google\Maps\RouteOptimization\V1\InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/InputConfig.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/InputConfig.php
new file mode 100644
index 000000000000..1ce8d31e1dbd
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/InputConfig.php
@@ -0,0 +1,110 @@
+google.maps.routeoptimization.v1.InputConfig
+ */
+class InputConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The input data format.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.DataFormat data_format = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $data_format = 0;
+ protected $source;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\RouteOptimization\V1\GcsSource $gcs_source
+ * A Google Cloud Storage location. This must be a single object (file).
+ * @type int $data_format
+ * Required. The input data format.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A Google Cloud Storage location. This must be a single object (file).
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.GcsSource gcs_source = 1;
+ * @return \Google\Maps\RouteOptimization\V1\GcsSource|null
+ */
+ public function getGcsSource()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasGcsSource()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * A Google Cloud Storage location. This must be a single object (file).
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.GcsSource gcs_source = 1;
+ * @param \Google\Maps\RouteOptimization\V1\GcsSource $var
+ * @return $this
+ */
+ public function setGcsSource($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\GcsSource::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Required. The input data format.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.DataFormat data_format = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getDataFormat()
+ {
+ return $this->data_format;
+ }
+
+ /**
+ * Required. The input data format.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.DataFormat data_format = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setDataFormat($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\RouteOptimization\V1\DataFormat::class);
+ $this->data_format = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSource()
+ {
+ return $this->whichOneof("source");
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Location.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Location.php
new file mode 100644
index 000000000000..fd6c1e3bb48d
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Location.php
@@ -0,0 +1,133 @@
+google.maps.routeoptimization.v1.Location
+ */
+class Location extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The waypoint's geographic coordinates.
+ *
+ * Generated from protobuf field .google.type.LatLng lat_lng = 1;
+ */
+ protected $lat_lng = null;
+ /**
+ * The compass heading associated with the direction of the flow of traffic.
+ * This value is used to specify the side of the road to use for pickup and
+ * drop-off. Heading values can be from 0 to 360, where 0 specifies a heading
+ * of due North, 90 specifies a heading of due East, etc.
+ *
+ * Generated from protobuf field optional int32 heading = 2;
+ */
+ protected $heading = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Type\LatLng $lat_lng
+ * The waypoint's geographic coordinates.
+ * @type int $heading
+ * The compass heading associated with the direction of the flow of traffic.
+ * This value is used to specify the side of the road to use for pickup and
+ * drop-off. Heading values can be from 0 to 360, where 0 specifies a heading
+ * of due North, 90 specifies a heading of due East, etc.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The waypoint's geographic coordinates.
+ *
+ * Generated from protobuf field .google.type.LatLng lat_lng = 1;
+ * @return \Google\Type\LatLng|null
+ */
+ public function getLatLng()
+ {
+ return $this->lat_lng;
+ }
+
+ public function hasLatLng()
+ {
+ return isset($this->lat_lng);
+ }
+
+ public function clearLatLng()
+ {
+ unset($this->lat_lng);
+ }
+
+ /**
+ * The waypoint's geographic coordinates.
+ *
+ * Generated from protobuf field .google.type.LatLng lat_lng = 1;
+ * @param \Google\Type\LatLng $var
+ * @return $this
+ */
+ public function setLatLng($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\LatLng::class);
+ $this->lat_lng = $var;
+
+ return $this;
+ }
+
+ /**
+ * The compass heading associated with the direction of the flow of traffic.
+ * This value is used to specify the side of the road to use for pickup and
+ * drop-off. Heading values can be from 0 to 360, where 0 specifies a heading
+ * of due North, 90 specifies a heading of due East, etc.
+ *
+ * Generated from protobuf field optional int32 heading = 2;
+ * @return int
+ */
+ public function getHeading()
+ {
+ return isset($this->heading) ? $this->heading : 0;
+ }
+
+ public function hasHeading()
+ {
+ return isset($this->heading);
+ }
+
+ public function clearHeading()
+ {
+ unset($this->heading);
+ }
+
+ /**
+ * The compass heading associated with the direction of the flow of traffic.
+ * This value is used to specify the side of the road to use for pickup and
+ * drop-off. Heading values can be from 0 to 360, where 0 specifies a heading
+ * of due North, 90 specifies a heading of due East, etc.
+ *
+ * Generated from protobuf field optional int32 heading = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setHeading($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->heading = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursRequest.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursRequest.php
new file mode 100644
index 000000000000..a7a94c081cf6
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursRequest.php
@@ -0,0 +1,1178 @@
+google.maps.routeoptimization.v1.OptimizeToursRequest
+ */
+class OptimizeToursRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Target project or location to make a call.
+ * Format:
+ * * `projects/{project-id}`
+ * * `projects/{project-id}/locations/{location-id}`
+ * If no location is specified, a region will be chosen automatically.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $parent = '';
+ /**
+ * If this timeout is set, the server returns a response before the timeout
+ * period has elapsed or the server deadline for synchronous requests is
+ * reached, whichever is sooner.
+ * For asynchronous requests, the server will generate a solution (if
+ * possible) before the timeout has elapsed.
+ *
+ * Generated from protobuf field .google.protobuf.Duration timeout = 2;
+ */
+ protected $timeout = null;
+ /**
+ * Shipment model to solve.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.ShipmentModel model = 3;
+ */
+ protected $model = null;
+ /**
+ * By default, the solving mode is `DEFAULT_SOLVE` (0).
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.OptimizeToursRequest.SolvingMode solving_mode = 4;
+ */
+ protected $solving_mode = 0;
+ /**
+ * Search mode used to solve the request.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.OptimizeToursRequest.SearchMode search_mode = 6;
+ */
+ protected $search_mode = 0;
+ /**
+ * Guide the optimization algorithm in finding a first solution that is
+ * similar to a previous solution.
+ * The model is constrained when the first solution is built.
+ * Any shipments not performed on a route are implicitly skipped in the first
+ * solution, but they may be performed in successive solutions.
+ * The solution must satisfy some basic validity assumptions:
+ * * for all routes, `vehicle_index` must be in range and not be duplicated.
+ * * for all visits, `shipment_index` and `visit_request_index` must be
+ * in range.
+ * * a shipment may only be referenced on one route.
+ * * the pickup of a pickup-delivery shipment must be performed before
+ * the delivery.
+ * * no more than one pickup alternative or delivery alternative of
+ * a shipment may be performed.
+ * * for all routes, times are increasing (i.e., `vehicle_start_time
+ * <= visits[0].start_time <= visits[1].start_time ...
+ * <= vehicle_end_time`).
+ * * a shipment may only be performed on a vehicle that is allowed. A
+ * vehicle is allowed if
+ * [Shipment.allowed_vehicle_indices][google.maps.routeoptimization.v1.Shipment.allowed_vehicle_indices]
+ * is empty or its `vehicle_index` is included in
+ * [Shipment.allowed_vehicle_indices][google.maps.routeoptimization.v1.Shipment.allowed_vehicle_indices].
+ * If the injected solution is not feasible, a validation error is not
+ * necessarily returned and an error indicating infeasibility may be returned
+ * instead.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute injected_first_solution_routes = 7;
+ */
+ private $injected_first_solution_routes;
+ /**
+ * Constrain the optimization algorithm to find a final solution that is
+ * similar to a previous solution. For example, this may be used to freeze
+ * portions of routes which have already been completed or which are to be
+ * completed but must not be modified.
+ * If the injected solution is not feasible, a validation error is not
+ * necessarily returned and an error indicating infeasibility may be returned
+ * instead.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.InjectedSolutionConstraint injected_solution_constraint = 8;
+ */
+ protected $injected_solution_constraint = null;
+ /**
+ * If non-empty, the given routes will be refreshed, without modifying their
+ * underlying sequence of visits or travel times: only other details will be
+ * updated. This does not solve the model.
+ * As of 2020/11, this only populates the polylines of non-empty routes and
+ * requires that `populate_polylines` is true.
+ * The `route_polyline` fields of the passed-in routes may be inconsistent
+ * with route `transitions`.
+ * This field must not be used together with `injected_first_solution_routes`
+ * or `injected_solution_constraint`.
+ * `Shipment.ignore` and `Vehicle.ignore` have no effect on the behavior.
+ * Polylines are still populated between all visits in all non-empty routes
+ * regardless of whether the related shipments or vehicles are ignored.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute refresh_details_routes = 9;
+ */
+ private $refresh_details_routes;
+ /**
+ * If true:
+ * * uses
+ * [ShipmentRoute.vehicle_label][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_label]
+ * instead of `vehicle_index` to
+ * match routes in an injected solution with vehicles in the request;
+ * reuses the mapping of original
+ * [ShipmentRoute.vehicle_index][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index]
+ * to new
+ * [ShipmentRoute.vehicle_index][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index]
+ * to update
+ * [ConstraintRelaxation.vehicle_indices][google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.vehicle_indices]
+ * if non-empty, but the mapping must be unambiguous (i.e., multiple
+ * `ShipmentRoute`s must not share the same original `vehicle_index`).
+ * * uses
+ * [ShipmentRoute.Visit.shipment_label][google.maps.routeoptimization.v1.ShipmentRoute.Visit.shipment_label]
+ * instead of `shipment_index`
+ * to match visits in an injected solution with shipments in the request;
+ * * uses
+ * [SkippedShipment.label][google.maps.routeoptimization.v1.SkippedShipment.label]
+ * instead of
+ * [SkippedShipment.index][google.maps.routeoptimization.v1.SkippedShipment.index]
+ * to
+ * match skipped shipments in the injected solution with request
+ * shipments.
+ * This interpretation applies to the `injected_first_solution_routes`,
+ * `injected_solution_constraint`, and `refresh_details_routes` fields.
+ * It can be used when shipment or vehicle indices in the request have
+ * changed since the solution was created, perhaps because shipments or
+ * vehicles have been removed from or added to the request.
+ * If true, labels in the following categories must appear at most once in
+ * their category:
+ * * [Vehicle.label][google.maps.routeoptimization.v1.Vehicle.label] in the
+ * request;
+ * * [Shipment.label][google.maps.routeoptimization.v1.Shipment.label] in
+ * the request;
+ * * [ShipmentRoute.vehicle_label][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_label] in the injected solution;
+ * * [SkippedShipment.label][google.maps.routeoptimization.v1.SkippedShipment.label] and [ShipmentRoute.Visit.shipment_label][google.maps.routeoptimization.v1.ShipmentRoute.Visit.shipment_label] in
+ * the injected solution (except pickup/delivery visit pairs, whose
+ * `shipment_label` must appear twice).
+ * If a `vehicle_label` in the injected solution does not correspond to a
+ * request vehicle, the corresponding route is removed from the solution
+ * along with its visits. If a `shipment_label` in the injected solution does
+ * not correspond to a request shipment, the corresponding visit is removed
+ * from the solution. If a
+ * [SkippedShipment.label][google.maps.routeoptimization.v1.SkippedShipment.label]
+ * in the injected solution does not correspond to a request shipment, the
+ * `SkippedShipment` is removed from the solution.
+ * Removing route visits or entire routes from an injected solution may
+ * have an effect on the implied constraints, which may lead to change in
+ * solution, validation errors, or infeasibility.
+ * NOTE: The caller must ensure that each
+ * [Vehicle.label][google.maps.routeoptimization.v1.Vehicle.label] (resp.
+ * [Shipment.label][google.maps.routeoptimization.v1.Shipment.label]) uniquely
+ * identifies a vehicle (resp. shipment) entity used across the two relevant
+ * requests: the past request that produced the `OptimizeToursResponse` used
+ * in the injected solution and the current request that includes the injected
+ * solution. The uniqueness checks described above are not enough to guarantee
+ * this requirement.
+ *
+ * Generated from protobuf field bool interpret_injected_solutions_using_labels = 10;
+ */
+ protected $interpret_injected_solutions_using_labels = false;
+ /**
+ * Consider traffic estimation in calculating `ShipmentRoute` fields
+ * [Transition.travel_duration][google.maps.routeoptimization.v1.ShipmentRoute.Transition.travel_duration],
+ * [Visit.start_time][google.maps.routeoptimization.v1.ShipmentRoute.Visit.start_time],
+ * and `vehicle_end_time`; in setting the
+ * [ShipmentRoute.has_traffic_infeasibilities][google.maps.routeoptimization.v1.ShipmentRoute.has_traffic_infeasibilities]
+ * field, and in calculating the
+ * [OptimizeToursResponse.total_cost][google.maps.routeoptimization.v1.OptimizeToursResponse.total_cost]
+ * field.
+ *
+ * Generated from protobuf field bool consider_road_traffic = 11;
+ */
+ protected $consider_road_traffic = false;
+ /**
+ * If true, polylines will be populated in response `ShipmentRoute`s.
+ *
+ * Generated from protobuf field bool populate_polylines = 12;
+ */
+ protected $populate_polylines = false;
+ /**
+ * If true, polylines and route tokens will be populated in response
+ * [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions].
+ *
+ * Generated from protobuf field bool populate_transition_polylines = 13;
+ */
+ protected $populate_transition_polylines = false;
+ /**
+ * If this is set, then the request can have a deadline
+ * (see https://grpc.io/blog/deadlines) of up to 60 minutes.
+ * Otherwise, the maximum deadline is only 30 minutes.
+ * Note that long-lived requests have a significantly larger (but still small)
+ * risk of interruption.
+ *
+ * Generated from protobuf field bool allow_large_deadline_despite_interruption_risk = 14;
+ */
+ protected $allow_large_deadline_despite_interruption_risk = false;
+ /**
+ * If true, travel distances will be computed using geodesic distances instead
+ * of Google Maps distances, and travel times will be computed using geodesic
+ * distances with a speed defined by `geodesic_meters_per_second`.
+ *
+ * Generated from protobuf field bool use_geodesic_distances = 15;
+ */
+ protected $use_geodesic_distances = false;
+ /**
+ * When `use_geodesic_distances` is true, this field must be set and defines
+ * the speed applied to compute travel times. Its value must be at least 1.0
+ * meters/seconds.
+ *
+ * Generated from protobuf field optional double geodesic_meters_per_second = 16;
+ */
+ protected $geodesic_meters_per_second = null;
+ /**
+ * Truncates the number of validation errors returned. These errors are
+ * typically attached to an INVALID_ARGUMENT error payload as a BadRequest
+ * error detail (https://cloud.google.com/apis/design/errors#error_details),
+ * unless solving_mode=VALIDATE_ONLY: see the
+ * [OptimizeToursResponse.validation_errors][google.maps.routeoptimization.v1.OptimizeToursResponse.validation_errors]
+ * field.
+ * This defaults to 100 and is capped at 10,000.
+ *
+ * Generated from protobuf field optional int32 max_validation_errors = 5;
+ */
+ protected $max_validation_errors = null;
+ /**
+ * Label that may be used to identify this request, reported back in the
+ * [OptimizeToursResponse.request_label][google.maps.routeoptimization.v1.OptimizeToursResponse.request_label].
+ *
+ * Generated from protobuf field string label = 17;
+ */
+ protected $label = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Target project or location to make a call.
+ * Format:
+ * * `projects/{project-id}`
+ * * `projects/{project-id}/locations/{location-id}`
+ * If no location is specified, a region will be chosen automatically.
+ * @type \Google\Protobuf\Duration $timeout
+ * If this timeout is set, the server returns a response before the timeout
+ * period has elapsed or the server deadline for synchronous requests is
+ * reached, whichever is sooner.
+ * For asynchronous requests, the server will generate a solution (if
+ * possible) before the timeout has elapsed.
+ * @type \Google\Maps\RouteOptimization\V1\ShipmentModel $model
+ * Shipment model to solve.
+ * @type int $solving_mode
+ * By default, the solving mode is `DEFAULT_SOLVE` (0).
+ * @type int $search_mode
+ * Search mode used to solve the request.
+ * @type array<\Google\Maps\RouteOptimization\V1\ShipmentRoute>|\Google\Protobuf\Internal\RepeatedField $injected_first_solution_routes
+ * Guide the optimization algorithm in finding a first solution that is
+ * similar to a previous solution.
+ * The model is constrained when the first solution is built.
+ * Any shipments not performed on a route are implicitly skipped in the first
+ * solution, but they may be performed in successive solutions.
+ * The solution must satisfy some basic validity assumptions:
+ * * for all routes, `vehicle_index` must be in range and not be duplicated.
+ * * for all visits, `shipment_index` and `visit_request_index` must be
+ * in range.
+ * * a shipment may only be referenced on one route.
+ * * the pickup of a pickup-delivery shipment must be performed before
+ * the delivery.
+ * * no more than one pickup alternative or delivery alternative of
+ * a shipment may be performed.
+ * * for all routes, times are increasing (i.e., `vehicle_start_time
+ * <= visits[0].start_time <= visits[1].start_time ...
+ * <= vehicle_end_time`).
+ * * a shipment may only be performed on a vehicle that is allowed. A
+ * vehicle is allowed if
+ * [Shipment.allowed_vehicle_indices][google.maps.routeoptimization.v1.Shipment.allowed_vehicle_indices]
+ * is empty or its `vehicle_index` is included in
+ * [Shipment.allowed_vehicle_indices][google.maps.routeoptimization.v1.Shipment.allowed_vehicle_indices].
+ * If the injected solution is not feasible, a validation error is not
+ * necessarily returned and an error indicating infeasibility may be returned
+ * instead.
+ * @type \Google\Maps\RouteOptimization\V1\InjectedSolutionConstraint $injected_solution_constraint
+ * Constrain the optimization algorithm to find a final solution that is
+ * similar to a previous solution. For example, this may be used to freeze
+ * portions of routes which have already been completed or which are to be
+ * completed but must not be modified.
+ * If the injected solution is not feasible, a validation error is not
+ * necessarily returned and an error indicating infeasibility may be returned
+ * instead.
+ * @type array<\Google\Maps\RouteOptimization\V1\ShipmentRoute>|\Google\Protobuf\Internal\RepeatedField $refresh_details_routes
+ * If non-empty, the given routes will be refreshed, without modifying their
+ * underlying sequence of visits or travel times: only other details will be
+ * updated. This does not solve the model.
+ * As of 2020/11, this only populates the polylines of non-empty routes and
+ * requires that `populate_polylines` is true.
+ * The `route_polyline` fields of the passed-in routes may be inconsistent
+ * with route `transitions`.
+ * This field must not be used together with `injected_first_solution_routes`
+ * or `injected_solution_constraint`.
+ * `Shipment.ignore` and `Vehicle.ignore` have no effect on the behavior.
+ * Polylines are still populated between all visits in all non-empty routes
+ * regardless of whether the related shipments or vehicles are ignored.
+ * @type bool $interpret_injected_solutions_using_labels
+ * If true:
+ * * uses
+ * [ShipmentRoute.vehicle_label][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_label]
+ * instead of `vehicle_index` to
+ * match routes in an injected solution with vehicles in the request;
+ * reuses the mapping of original
+ * [ShipmentRoute.vehicle_index][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index]
+ * to new
+ * [ShipmentRoute.vehicle_index][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index]
+ * to update
+ * [ConstraintRelaxation.vehicle_indices][google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.vehicle_indices]
+ * if non-empty, but the mapping must be unambiguous (i.e., multiple
+ * `ShipmentRoute`s must not share the same original `vehicle_index`).
+ * * uses
+ * [ShipmentRoute.Visit.shipment_label][google.maps.routeoptimization.v1.ShipmentRoute.Visit.shipment_label]
+ * instead of `shipment_index`
+ * to match visits in an injected solution with shipments in the request;
+ * * uses
+ * [SkippedShipment.label][google.maps.routeoptimization.v1.SkippedShipment.label]
+ * instead of
+ * [SkippedShipment.index][google.maps.routeoptimization.v1.SkippedShipment.index]
+ * to
+ * match skipped shipments in the injected solution with request
+ * shipments.
+ * This interpretation applies to the `injected_first_solution_routes`,
+ * `injected_solution_constraint`, and `refresh_details_routes` fields.
+ * It can be used when shipment or vehicle indices in the request have
+ * changed since the solution was created, perhaps because shipments or
+ * vehicles have been removed from or added to the request.
+ * If true, labels in the following categories must appear at most once in
+ * their category:
+ * * [Vehicle.label][google.maps.routeoptimization.v1.Vehicle.label] in the
+ * request;
+ * * [Shipment.label][google.maps.routeoptimization.v1.Shipment.label] in
+ * the request;
+ * * [ShipmentRoute.vehicle_label][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_label] in the injected solution;
+ * * [SkippedShipment.label][google.maps.routeoptimization.v1.SkippedShipment.label] and [ShipmentRoute.Visit.shipment_label][google.maps.routeoptimization.v1.ShipmentRoute.Visit.shipment_label] in
+ * the injected solution (except pickup/delivery visit pairs, whose
+ * `shipment_label` must appear twice).
+ * If a `vehicle_label` in the injected solution does not correspond to a
+ * request vehicle, the corresponding route is removed from the solution
+ * along with its visits. If a `shipment_label` in the injected solution does
+ * not correspond to a request shipment, the corresponding visit is removed
+ * from the solution. If a
+ * [SkippedShipment.label][google.maps.routeoptimization.v1.SkippedShipment.label]
+ * in the injected solution does not correspond to a request shipment, the
+ * `SkippedShipment` is removed from the solution.
+ * Removing route visits or entire routes from an injected solution may
+ * have an effect on the implied constraints, which may lead to change in
+ * solution, validation errors, or infeasibility.
+ * NOTE: The caller must ensure that each
+ * [Vehicle.label][google.maps.routeoptimization.v1.Vehicle.label] (resp.
+ * [Shipment.label][google.maps.routeoptimization.v1.Shipment.label]) uniquely
+ * identifies a vehicle (resp. shipment) entity used across the two relevant
+ * requests: the past request that produced the `OptimizeToursResponse` used
+ * in the injected solution and the current request that includes the injected
+ * solution. The uniqueness checks described above are not enough to guarantee
+ * this requirement.
+ * @type bool $consider_road_traffic
+ * Consider traffic estimation in calculating `ShipmentRoute` fields
+ * [Transition.travel_duration][google.maps.routeoptimization.v1.ShipmentRoute.Transition.travel_duration],
+ * [Visit.start_time][google.maps.routeoptimization.v1.ShipmentRoute.Visit.start_time],
+ * and `vehicle_end_time`; in setting the
+ * [ShipmentRoute.has_traffic_infeasibilities][google.maps.routeoptimization.v1.ShipmentRoute.has_traffic_infeasibilities]
+ * field, and in calculating the
+ * [OptimizeToursResponse.total_cost][google.maps.routeoptimization.v1.OptimizeToursResponse.total_cost]
+ * field.
+ * @type bool $populate_polylines
+ * If true, polylines will be populated in response `ShipmentRoute`s.
+ * @type bool $populate_transition_polylines
+ * If true, polylines and route tokens will be populated in response
+ * [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions].
+ * @type bool $allow_large_deadline_despite_interruption_risk
+ * If this is set, then the request can have a deadline
+ * (see https://grpc.io/blog/deadlines) of up to 60 minutes.
+ * Otherwise, the maximum deadline is only 30 minutes.
+ * Note that long-lived requests have a significantly larger (but still small)
+ * risk of interruption.
+ * @type bool $use_geodesic_distances
+ * If true, travel distances will be computed using geodesic distances instead
+ * of Google Maps distances, and travel times will be computed using geodesic
+ * distances with a speed defined by `geodesic_meters_per_second`.
+ * @type float $geodesic_meters_per_second
+ * When `use_geodesic_distances` is true, this field must be set and defines
+ * the speed applied to compute travel times. Its value must be at least 1.0
+ * meters/seconds.
+ * @type int $max_validation_errors
+ * Truncates the number of validation errors returned. These errors are
+ * typically attached to an INVALID_ARGUMENT error payload as a BadRequest
+ * error detail (https://cloud.google.com/apis/design/errors#error_details),
+ * unless solving_mode=VALIDATE_ONLY: see the
+ * [OptimizeToursResponse.validation_errors][google.maps.routeoptimization.v1.OptimizeToursResponse.validation_errors]
+ * field.
+ * This defaults to 100 and is capped at 10,000.
+ * @type string $label
+ * Label that may be used to identify this request, reported back in the
+ * [OptimizeToursResponse.request_label][google.maps.routeoptimization.v1.OptimizeToursResponse.request_label].
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Target project or location to make a call.
+ * Format:
+ * * `projects/{project-id}`
+ * * `projects/{project-id}/locations/{location-id}`
+ * If no location is specified, a region will be chosen automatically.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Target project or location to make a call.
+ * Format:
+ * * `projects/{project-id}`
+ * * `projects/{project-id}/locations/{location-id}`
+ * If no location is specified, a region will be chosen automatically.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * If this timeout is set, the server returns a response before the timeout
+ * period has elapsed or the server deadline for synchronous requests is
+ * reached, whichever is sooner.
+ * For asynchronous requests, the server will generate a solution (if
+ * possible) before the timeout has elapsed.
+ *
+ * Generated from protobuf field .google.protobuf.Duration timeout = 2;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getTimeout()
+ {
+ return $this->timeout;
+ }
+
+ public function hasTimeout()
+ {
+ return isset($this->timeout);
+ }
+
+ public function clearTimeout()
+ {
+ unset($this->timeout);
+ }
+
+ /**
+ * If this timeout is set, the server returns a response before the timeout
+ * period has elapsed or the server deadline for synchronous requests is
+ * reached, whichever is sooner.
+ * For asynchronous requests, the server will generate a solution (if
+ * possible) before the timeout has elapsed.
+ *
+ * Generated from protobuf field .google.protobuf.Duration timeout = 2;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setTimeout($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->timeout = $var;
+
+ return $this;
+ }
+
+ /**
+ * Shipment model to solve.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.ShipmentModel model = 3;
+ * @return \Google\Maps\RouteOptimization\V1\ShipmentModel|null
+ */
+ public function getModel()
+ {
+ return $this->model;
+ }
+
+ public function hasModel()
+ {
+ return isset($this->model);
+ }
+
+ public function clearModel()
+ {
+ unset($this->model);
+ }
+
+ /**
+ * Shipment model to solve.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.ShipmentModel model = 3;
+ * @param \Google\Maps\RouteOptimization\V1\ShipmentModel $var
+ * @return $this
+ */
+ public function setModel($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\ShipmentModel::class);
+ $this->model = $var;
+
+ return $this;
+ }
+
+ /**
+ * By default, the solving mode is `DEFAULT_SOLVE` (0).
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.OptimizeToursRequest.SolvingMode solving_mode = 4;
+ * @return int
+ */
+ public function getSolvingMode()
+ {
+ return $this->solving_mode;
+ }
+
+ /**
+ * By default, the solving mode is `DEFAULT_SOLVE` (0).
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.OptimizeToursRequest.SolvingMode solving_mode = 4;
+ * @param int $var
+ * @return $this
+ */
+ public function setSolvingMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\RouteOptimization\V1\OptimizeToursRequest\SolvingMode::class);
+ $this->solving_mode = $var;
+
+ return $this;
+ }
+
+ /**
+ * Search mode used to solve the request.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.OptimizeToursRequest.SearchMode search_mode = 6;
+ * @return int
+ */
+ public function getSearchMode()
+ {
+ return $this->search_mode;
+ }
+
+ /**
+ * Search mode used to solve the request.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.OptimizeToursRequest.SearchMode search_mode = 6;
+ * @param int $var
+ * @return $this
+ */
+ public function setSearchMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\RouteOptimization\V1\OptimizeToursRequest\SearchMode::class);
+ $this->search_mode = $var;
+
+ return $this;
+ }
+
+ /**
+ * Guide the optimization algorithm in finding a first solution that is
+ * similar to a previous solution.
+ * The model is constrained when the first solution is built.
+ * Any shipments not performed on a route are implicitly skipped in the first
+ * solution, but they may be performed in successive solutions.
+ * The solution must satisfy some basic validity assumptions:
+ * * for all routes, `vehicle_index` must be in range and not be duplicated.
+ * * for all visits, `shipment_index` and `visit_request_index` must be
+ * in range.
+ * * a shipment may only be referenced on one route.
+ * * the pickup of a pickup-delivery shipment must be performed before
+ * the delivery.
+ * * no more than one pickup alternative or delivery alternative of
+ * a shipment may be performed.
+ * * for all routes, times are increasing (i.e., `vehicle_start_time
+ * <= visits[0].start_time <= visits[1].start_time ...
+ * <= vehicle_end_time`).
+ * * a shipment may only be performed on a vehicle that is allowed. A
+ * vehicle is allowed if
+ * [Shipment.allowed_vehicle_indices][google.maps.routeoptimization.v1.Shipment.allowed_vehicle_indices]
+ * is empty or its `vehicle_index` is included in
+ * [Shipment.allowed_vehicle_indices][google.maps.routeoptimization.v1.Shipment.allowed_vehicle_indices].
+ * If the injected solution is not feasible, a validation error is not
+ * necessarily returned and an error indicating infeasibility may be returned
+ * instead.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute injected_first_solution_routes = 7;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getInjectedFirstSolutionRoutes()
+ {
+ return $this->injected_first_solution_routes;
+ }
+
+ /**
+ * Guide the optimization algorithm in finding a first solution that is
+ * similar to a previous solution.
+ * The model is constrained when the first solution is built.
+ * Any shipments not performed on a route are implicitly skipped in the first
+ * solution, but they may be performed in successive solutions.
+ * The solution must satisfy some basic validity assumptions:
+ * * for all routes, `vehicle_index` must be in range and not be duplicated.
+ * * for all visits, `shipment_index` and `visit_request_index` must be
+ * in range.
+ * * a shipment may only be referenced on one route.
+ * * the pickup of a pickup-delivery shipment must be performed before
+ * the delivery.
+ * * no more than one pickup alternative or delivery alternative of
+ * a shipment may be performed.
+ * * for all routes, times are increasing (i.e., `vehicle_start_time
+ * <= visits[0].start_time <= visits[1].start_time ...
+ * <= vehicle_end_time`).
+ * * a shipment may only be performed on a vehicle that is allowed. A
+ * vehicle is allowed if
+ * [Shipment.allowed_vehicle_indices][google.maps.routeoptimization.v1.Shipment.allowed_vehicle_indices]
+ * is empty or its `vehicle_index` is included in
+ * [Shipment.allowed_vehicle_indices][google.maps.routeoptimization.v1.Shipment.allowed_vehicle_indices].
+ * If the injected solution is not feasible, a validation error is not
+ * necessarily returned and an error indicating infeasibility may be returned
+ * instead.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute injected_first_solution_routes = 7;
+ * @param array<\Google\Maps\RouteOptimization\V1\ShipmentRoute>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setInjectedFirstSolutionRoutes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\ShipmentRoute::class);
+ $this->injected_first_solution_routes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Constrain the optimization algorithm to find a final solution that is
+ * similar to a previous solution. For example, this may be used to freeze
+ * portions of routes which have already been completed or which are to be
+ * completed but must not be modified.
+ * If the injected solution is not feasible, a validation error is not
+ * necessarily returned and an error indicating infeasibility may be returned
+ * instead.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.InjectedSolutionConstraint injected_solution_constraint = 8;
+ * @return \Google\Maps\RouteOptimization\V1\InjectedSolutionConstraint|null
+ */
+ public function getInjectedSolutionConstraint()
+ {
+ return $this->injected_solution_constraint;
+ }
+
+ public function hasInjectedSolutionConstraint()
+ {
+ return isset($this->injected_solution_constraint);
+ }
+
+ public function clearInjectedSolutionConstraint()
+ {
+ unset($this->injected_solution_constraint);
+ }
+
+ /**
+ * Constrain the optimization algorithm to find a final solution that is
+ * similar to a previous solution. For example, this may be used to freeze
+ * portions of routes which have already been completed or which are to be
+ * completed but must not be modified.
+ * If the injected solution is not feasible, a validation error is not
+ * necessarily returned and an error indicating infeasibility may be returned
+ * instead.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.InjectedSolutionConstraint injected_solution_constraint = 8;
+ * @param \Google\Maps\RouteOptimization\V1\InjectedSolutionConstraint $var
+ * @return $this
+ */
+ public function setInjectedSolutionConstraint($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\InjectedSolutionConstraint::class);
+ $this->injected_solution_constraint = $var;
+
+ return $this;
+ }
+
+ /**
+ * If non-empty, the given routes will be refreshed, without modifying their
+ * underlying sequence of visits or travel times: only other details will be
+ * updated. This does not solve the model.
+ * As of 2020/11, this only populates the polylines of non-empty routes and
+ * requires that `populate_polylines` is true.
+ * The `route_polyline` fields of the passed-in routes may be inconsistent
+ * with route `transitions`.
+ * This field must not be used together with `injected_first_solution_routes`
+ * or `injected_solution_constraint`.
+ * `Shipment.ignore` and `Vehicle.ignore` have no effect on the behavior.
+ * Polylines are still populated between all visits in all non-empty routes
+ * regardless of whether the related shipments or vehicles are ignored.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute refresh_details_routes = 9;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRefreshDetailsRoutes()
+ {
+ return $this->refresh_details_routes;
+ }
+
+ /**
+ * If non-empty, the given routes will be refreshed, without modifying their
+ * underlying sequence of visits or travel times: only other details will be
+ * updated. This does not solve the model.
+ * As of 2020/11, this only populates the polylines of non-empty routes and
+ * requires that `populate_polylines` is true.
+ * The `route_polyline` fields of the passed-in routes may be inconsistent
+ * with route `transitions`.
+ * This field must not be used together with `injected_first_solution_routes`
+ * or `injected_solution_constraint`.
+ * `Shipment.ignore` and `Vehicle.ignore` have no effect on the behavior.
+ * Polylines are still populated between all visits in all non-empty routes
+ * regardless of whether the related shipments or vehicles are ignored.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute refresh_details_routes = 9;
+ * @param array<\Google\Maps\RouteOptimization\V1\ShipmentRoute>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRefreshDetailsRoutes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\ShipmentRoute::class);
+ $this->refresh_details_routes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * If true:
+ * * uses
+ * [ShipmentRoute.vehicle_label][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_label]
+ * instead of `vehicle_index` to
+ * match routes in an injected solution with vehicles in the request;
+ * reuses the mapping of original
+ * [ShipmentRoute.vehicle_index][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index]
+ * to new
+ * [ShipmentRoute.vehicle_index][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index]
+ * to update
+ * [ConstraintRelaxation.vehicle_indices][google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.vehicle_indices]
+ * if non-empty, but the mapping must be unambiguous (i.e., multiple
+ * `ShipmentRoute`s must not share the same original `vehicle_index`).
+ * * uses
+ * [ShipmentRoute.Visit.shipment_label][google.maps.routeoptimization.v1.ShipmentRoute.Visit.shipment_label]
+ * instead of `shipment_index`
+ * to match visits in an injected solution with shipments in the request;
+ * * uses
+ * [SkippedShipment.label][google.maps.routeoptimization.v1.SkippedShipment.label]
+ * instead of
+ * [SkippedShipment.index][google.maps.routeoptimization.v1.SkippedShipment.index]
+ * to
+ * match skipped shipments in the injected solution with request
+ * shipments.
+ * This interpretation applies to the `injected_first_solution_routes`,
+ * `injected_solution_constraint`, and `refresh_details_routes` fields.
+ * It can be used when shipment or vehicle indices in the request have
+ * changed since the solution was created, perhaps because shipments or
+ * vehicles have been removed from or added to the request.
+ * If true, labels in the following categories must appear at most once in
+ * their category:
+ * * [Vehicle.label][google.maps.routeoptimization.v1.Vehicle.label] in the
+ * request;
+ * * [Shipment.label][google.maps.routeoptimization.v1.Shipment.label] in
+ * the request;
+ * * [ShipmentRoute.vehicle_label][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_label] in the injected solution;
+ * * [SkippedShipment.label][google.maps.routeoptimization.v1.SkippedShipment.label] and [ShipmentRoute.Visit.shipment_label][google.maps.routeoptimization.v1.ShipmentRoute.Visit.shipment_label] in
+ * the injected solution (except pickup/delivery visit pairs, whose
+ * `shipment_label` must appear twice).
+ * If a `vehicle_label` in the injected solution does not correspond to a
+ * request vehicle, the corresponding route is removed from the solution
+ * along with its visits. If a `shipment_label` in the injected solution does
+ * not correspond to a request shipment, the corresponding visit is removed
+ * from the solution. If a
+ * [SkippedShipment.label][google.maps.routeoptimization.v1.SkippedShipment.label]
+ * in the injected solution does not correspond to a request shipment, the
+ * `SkippedShipment` is removed from the solution.
+ * Removing route visits or entire routes from an injected solution may
+ * have an effect on the implied constraints, which may lead to change in
+ * solution, validation errors, or infeasibility.
+ * NOTE: The caller must ensure that each
+ * [Vehicle.label][google.maps.routeoptimization.v1.Vehicle.label] (resp.
+ * [Shipment.label][google.maps.routeoptimization.v1.Shipment.label]) uniquely
+ * identifies a vehicle (resp. shipment) entity used across the two relevant
+ * requests: the past request that produced the `OptimizeToursResponse` used
+ * in the injected solution and the current request that includes the injected
+ * solution. The uniqueness checks described above are not enough to guarantee
+ * this requirement.
+ *
+ * Generated from protobuf field bool interpret_injected_solutions_using_labels = 10;
+ * @return bool
+ */
+ public function getInterpretInjectedSolutionsUsingLabels()
+ {
+ return $this->interpret_injected_solutions_using_labels;
+ }
+
+ /**
+ * If true:
+ * * uses
+ * [ShipmentRoute.vehicle_label][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_label]
+ * instead of `vehicle_index` to
+ * match routes in an injected solution with vehicles in the request;
+ * reuses the mapping of original
+ * [ShipmentRoute.vehicle_index][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index]
+ * to new
+ * [ShipmentRoute.vehicle_index][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_index]
+ * to update
+ * [ConstraintRelaxation.vehicle_indices][google.maps.routeoptimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.vehicle_indices]
+ * if non-empty, but the mapping must be unambiguous (i.e., multiple
+ * `ShipmentRoute`s must not share the same original `vehicle_index`).
+ * * uses
+ * [ShipmentRoute.Visit.shipment_label][google.maps.routeoptimization.v1.ShipmentRoute.Visit.shipment_label]
+ * instead of `shipment_index`
+ * to match visits in an injected solution with shipments in the request;
+ * * uses
+ * [SkippedShipment.label][google.maps.routeoptimization.v1.SkippedShipment.label]
+ * instead of
+ * [SkippedShipment.index][google.maps.routeoptimization.v1.SkippedShipment.index]
+ * to
+ * match skipped shipments in the injected solution with request
+ * shipments.
+ * This interpretation applies to the `injected_first_solution_routes`,
+ * `injected_solution_constraint`, and `refresh_details_routes` fields.
+ * It can be used when shipment or vehicle indices in the request have
+ * changed since the solution was created, perhaps because shipments or
+ * vehicles have been removed from or added to the request.
+ * If true, labels in the following categories must appear at most once in
+ * their category:
+ * * [Vehicle.label][google.maps.routeoptimization.v1.Vehicle.label] in the
+ * request;
+ * * [Shipment.label][google.maps.routeoptimization.v1.Shipment.label] in
+ * the request;
+ * * [ShipmentRoute.vehicle_label][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_label] in the injected solution;
+ * * [SkippedShipment.label][google.maps.routeoptimization.v1.SkippedShipment.label] and [ShipmentRoute.Visit.shipment_label][google.maps.routeoptimization.v1.ShipmentRoute.Visit.shipment_label] in
+ * the injected solution (except pickup/delivery visit pairs, whose
+ * `shipment_label` must appear twice).
+ * If a `vehicle_label` in the injected solution does not correspond to a
+ * request vehicle, the corresponding route is removed from the solution
+ * along with its visits. If a `shipment_label` in the injected solution does
+ * not correspond to a request shipment, the corresponding visit is removed
+ * from the solution. If a
+ * [SkippedShipment.label][google.maps.routeoptimization.v1.SkippedShipment.label]
+ * in the injected solution does not correspond to a request shipment, the
+ * `SkippedShipment` is removed from the solution.
+ * Removing route visits or entire routes from an injected solution may
+ * have an effect on the implied constraints, which may lead to change in
+ * solution, validation errors, or infeasibility.
+ * NOTE: The caller must ensure that each
+ * [Vehicle.label][google.maps.routeoptimization.v1.Vehicle.label] (resp.
+ * [Shipment.label][google.maps.routeoptimization.v1.Shipment.label]) uniquely
+ * identifies a vehicle (resp. shipment) entity used across the two relevant
+ * requests: the past request that produced the `OptimizeToursResponse` used
+ * in the injected solution and the current request that includes the injected
+ * solution. The uniqueness checks described above are not enough to guarantee
+ * this requirement.
+ *
+ * Generated from protobuf field bool interpret_injected_solutions_using_labels = 10;
+ * @param bool $var
+ * @return $this
+ */
+ public function setInterpretInjectedSolutionsUsingLabels($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->interpret_injected_solutions_using_labels = $var;
+
+ return $this;
+ }
+
+ /**
+ * Consider traffic estimation in calculating `ShipmentRoute` fields
+ * [Transition.travel_duration][google.maps.routeoptimization.v1.ShipmentRoute.Transition.travel_duration],
+ * [Visit.start_time][google.maps.routeoptimization.v1.ShipmentRoute.Visit.start_time],
+ * and `vehicle_end_time`; in setting the
+ * [ShipmentRoute.has_traffic_infeasibilities][google.maps.routeoptimization.v1.ShipmentRoute.has_traffic_infeasibilities]
+ * field, and in calculating the
+ * [OptimizeToursResponse.total_cost][google.maps.routeoptimization.v1.OptimizeToursResponse.total_cost]
+ * field.
+ *
+ * Generated from protobuf field bool consider_road_traffic = 11;
+ * @return bool
+ */
+ public function getConsiderRoadTraffic()
+ {
+ return $this->consider_road_traffic;
+ }
+
+ /**
+ * Consider traffic estimation in calculating `ShipmentRoute` fields
+ * [Transition.travel_duration][google.maps.routeoptimization.v1.ShipmentRoute.Transition.travel_duration],
+ * [Visit.start_time][google.maps.routeoptimization.v1.ShipmentRoute.Visit.start_time],
+ * and `vehicle_end_time`; in setting the
+ * [ShipmentRoute.has_traffic_infeasibilities][google.maps.routeoptimization.v1.ShipmentRoute.has_traffic_infeasibilities]
+ * field, and in calculating the
+ * [OptimizeToursResponse.total_cost][google.maps.routeoptimization.v1.OptimizeToursResponse.total_cost]
+ * field.
+ *
+ * Generated from protobuf field bool consider_road_traffic = 11;
+ * @param bool $var
+ * @return $this
+ */
+ public function setConsiderRoadTraffic($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->consider_road_traffic = $var;
+
+ return $this;
+ }
+
+ /**
+ * If true, polylines will be populated in response `ShipmentRoute`s.
+ *
+ * Generated from protobuf field bool populate_polylines = 12;
+ * @return bool
+ */
+ public function getPopulatePolylines()
+ {
+ return $this->populate_polylines;
+ }
+
+ /**
+ * If true, polylines will be populated in response `ShipmentRoute`s.
+ *
+ * Generated from protobuf field bool populate_polylines = 12;
+ * @param bool $var
+ * @return $this
+ */
+ public function setPopulatePolylines($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->populate_polylines = $var;
+
+ return $this;
+ }
+
+ /**
+ * If true, polylines and route tokens will be populated in response
+ * [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions].
+ *
+ * Generated from protobuf field bool populate_transition_polylines = 13;
+ * @return bool
+ */
+ public function getPopulateTransitionPolylines()
+ {
+ return $this->populate_transition_polylines;
+ }
+
+ /**
+ * If true, polylines and route tokens will be populated in response
+ * [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions].
+ *
+ * Generated from protobuf field bool populate_transition_polylines = 13;
+ * @param bool $var
+ * @return $this
+ */
+ public function setPopulateTransitionPolylines($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->populate_transition_polylines = $var;
+
+ return $this;
+ }
+
+ /**
+ * If this is set, then the request can have a deadline
+ * (see https://grpc.io/blog/deadlines) of up to 60 minutes.
+ * Otherwise, the maximum deadline is only 30 minutes.
+ * Note that long-lived requests have a significantly larger (but still small)
+ * risk of interruption.
+ *
+ * Generated from protobuf field bool allow_large_deadline_despite_interruption_risk = 14;
+ * @return bool
+ */
+ public function getAllowLargeDeadlineDespiteInterruptionRisk()
+ {
+ return $this->allow_large_deadline_despite_interruption_risk;
+ }
+
+ /**
+ * If this is set, then the request can have a deadline
+ * (see https://grpc.io/blog/deadlines) of up to 60 minutes.
+ * Otherwise, the maximum deadline is only 30 minutes.
+ * Note that long-lived requests have a significantly larger (but still small)
+ * risk of interruption.
+ *
+ * Generated from protobuf field bool allow_large_deadline_despite_interruption_risk = 14;
+ * @param bool $var
+ * @return $this
+ */
+ public function setAllowLargeDeadlineDespiteInterruptionRisk($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->allow_large_deadline_despite_interruption_risk = $var;
+
+ return $this;
+ }
+
+ /**
+ * If true, travel distances will be computed using geodesic distances instead
+ * of Google Maps distances, and travel times will be computed using geodesic
+ * distances with a speed defined by `geodesic_meters_per_second`.
+ *
+ * Generated from protobuf field bool use_geodesic_distances = 15;
+ * @return bool
+ */
+ public function getUseGeodesicDistances()
+ {
+ return $this->use_geodesic_distances;
+ }
+
+ /**
+ * If true, travel distances will be computed using geodesic distances instead
+ * of Google Maps distances, and travel times will be computed using geodesic
+ * distances with a speed defined by `geodesic_meters_per_second`.
+ *
+ * Generated from protobuf field bool use_geodesic_distances = 15;
+ * @param bool $var
+ * @return $this
+ */
+ public function setUseGeodesicDistances($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->use_geodesic_distances = $var;
+
+ return $this;
+ }
+
+ /**
+ * When `use_geodesic_distances` is true, this field must be set and defines
+ * the speed applied to compute travel times. Its value must be at least 1.0
+ * meters/seconds.
+ *
+ * Generated from protobuf field optional double geodesic_meters_per_second = 16;
+ * @return float
+ */
+ public function getGeodesicMetersPerSecond()
+ {
+ return isset($this->geodesic_meters_per_second) ? $this->geodesic_meters_per_second : 0.0;
+ }
+
+ public function hasGeodesicMetersPerSecond()
+ {
+ return isset($this->geodesic_meters_per_second);
+ }
+
+ public function clearGeodesicMetersPerSecond()
+ {
+ unset($this->geodesic_meters_per_second);
+ }
+
+ /**
+ * When `use_geodesic_distances` is true, this field must be set and defines
+ * the speed applied to compute travel times. Its value must be at least 1.0
+ * meters/seconds.
+ *
+ * Generated from protobuf field optional double geodesic_meters_per_second = 16;
+ * @param float $var
+ * @return $this
+ */
+ public function setGeodesicMetersPerSecond($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->geodesic_meters_per_second = $var;
+
+ return $this;
+ }
+
+ /**
+ * Truncates the number of validation errors returned. These errors are
+ * typically attached to an INVALID_ARGUMENT error payload as a BadRequest
+ * error detail (https://cloud.google.com/apis/design/errors#error_details),
+ * unless solving_mode=VALIDATE_ONLY: see the
+ * [OptimizeToursResponse.validation_errors][google.maps.routeoptimization.v1.OptimizeToursResponse.validation_errors]
+ * field.
+ * This defaults to 100 and is capped at 10,000.
+ *
+ * Generated from protobuf field optional int32 max_validation_errors = 5;
+ * @return int
+ */
+ public function getMaxValidationErrors()
+ {
+ return isset($this->max_validation_errors) ? $this->max_validation_errors : 0;
+ }
+
+ public function hasMaxValidationErrors()
+ {
+ return isset($this->max_validation_errors);
+ }
+
+ public function clearMaxValidationErrors()
+ {
+ unset($this->max_validation_errors);
+ }
+
+ /**
+ * Truncates the number of validation errors returned. These errors are
+ * typically attached to an INVALID_ARGUMENT error payload as a BadRequest
+ * error detail (https://cloud.google.com/apis/design/errors#error_details),
+ * unless solving_mode=VALIDATE_ONLY: see the
+ * [OptimizeToursResponse.validation_errors][google.maps.routeoptimization.v1.OptimizeToursResponse.validation_errors]
+ * field.
+ * This defaults to 100 and is capped at 10,000.
+ *
+ * Generated from protobuf field optional int32 max_validation_errors = 5;
+ * @param int $var
+ * @return $this
+ */
+ public function setMaxValidationErrors($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->max_validation_errors = $var;
+
+ return $this;
+ }
+
+ /**
+ * Label that may be used to identify this request, reported back in the
+ * [OptimizeToursResponse.request_label][google.maps.routeoptimization.v1.OptimizeToursResponse.request_label].
+ *
+ * Generated from protobuf field string label = 17;
+ * @return string
+ */
+ public function getLabel()
+ {
+ return $this->label;
+ }
+
+ /**
+ * Label that may be used to identify this request, reported back in the
+ * [OptimizeToursResponse.request_label][google.maps.routeoptimization.v1.OptimizeToursResponse.request_label].
+ *
+ * Generated from protobuf field string label = 17;
+ * @param string $var
+ * @return $this
+ */
+ public function setLabel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->label = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursRequest/SearchMode.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursRequest/SearchMode.php
new file mode 100644
index 000000000000..1933e8a6c82e
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursRequest/SearchMode.php
@@ -0,0 +1,65 @@
+google.maps.routeoptimization.v1.OptimizeToursRequest.SearchMode
+ */
+class SearchMode
+{
+ /**
+ * Unspecified search mode, equivalent to `RETURN_FAST`.
+ *
+ * Generated from protobuf enum SEARCH_MODE_UNSPECIFIED = 0;
+ */
+ const SEARCH_MODE_UNSPECIFIED = 0;
+ /**
+ * Stop the search after finding the first good solution.
+ *
+ * Generated from protobuf enum RETURN_FAST = 1;
+ */
+ const RETURN_FAST = 1;
+ /**
+ * Spend all the available time to search for better solutions.
+ *
+ * Generated from protobuf enum CONSUME_ALL_AVAILABLE_TIME = 2;
+ */
+ const CONSUME_ALL_AVAILABLE_TIME = 2;
+
+ private static $valueToName = [
+ self::SEARCH_MODE_UNSPECIFIED => 'SEARCH_MODE_UNSPECIFIED',
+ self::RETURN_FAST => 'RETURN_FAST',
+ self::CONSUME_ALL_AVAILABLE_TIME => 'CONSUME_ALL_AVAILABLE_TIME',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(SearchMode::class, \Google\Maps\RouteOptimization\V1\OptimizeToursRequest_SearchMode::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursRequest/SolvingMode.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursRequest/SolvingMode.php
new file mode 100644
index 000000000000..33490075a243
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursRequest/SolvingMode.php
@@ -0,0 +1,84 @@
+google.maps.routeoptimization.v1.OptimizeToursRequest.SolvingMode
+ */
+class SolvingMode
+{
+ /**
+ * Solve the model. Warnings may be issued in
+ * [OptimizeToursResponse.validation_errors][google.cloud.optimization.v1.OptimizeToursResponse.validation_errors].
+ *
+ * Generated from protobuf enum DEFAULT_SOLVE = 0;
+ */
+ const DEFAULT_SOLVE = 0;
+ /**
+ * Only validates the model without solving it: populates as many
+ * [OptimizeToursResponse.validation_errors][google.maps.routeoptimization.v1.OptimizeToursResponse.validation_errors]
+ * as possible.
+ *
+ * Generated from protobuf enum VALIDATE_ONLY = 1;
+ */
+ const VALIDATE_ONLY = 1;
+ /**
+ * Only populates
+ * [OptimizeToursResponse.validation_errors][google.maps.routeoptimization.v1.OptimizeToursResponse.validation_errors]
+ * or
+ * [OptimizeToursResponse.skipped_shipments][google.maps.routeoptimization.v1.OptimizeToursResponse.skipped_shipments],
+ * and doesn't actually solve the rest of the request (`status` and `routes`
+ * are unset in the response).
+ * If infeasibilities in `injected_solution_constraint` routes are detected
+ * they are populated in the
+ * [OptimizeToursResponse.validation_errors][google.maps.routeoptimization.v1.OptimizeToursResponse.validation_errors]
+ * field and
+ * [OptimizeToursResponse.skipped_shipments][google.maps.routeoptimization.v1.OptimizeToursResponse.skipped_shipments]
+ * is left empty.
+ * *IMPORTANT*: not all infeasible shipments are returned here, but only the
+ * ones that are detected as infeasible during preprocessing.
+ *
+ * Generated from protobuf enum DETECT_SOME_INFEASIBLE_SHIPMENTS = 2;
+ */
+ const DETECT_SOME_INFEASIBLE_SHIPMENTS = 2;
+
+ private static $valueToName = [
+ self::DEFAULT_SOLVE => 'DEFAULT_SOLVE',
+ self::VALIDATE_ONLY => 'VALIDATE_ONLY',
+ self::DETECT_SOME_INFEASIBLE_SHIPMENTS => 'DETECT_SOME_INFEASIBLE_SHIPMENTS',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(SolvingMode::class, \Google\Maps\RouteOptimization\V1\OptimizeToursRequest_SolvingMode::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursResponse.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursResponse.php
new file mode 100644
index 000000000000..4933ce254730
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursResponse.php
@@ -0,0 +1,243 @@
+google.maps.routeoptimization.v1.OptimizeToursResponse
+ */
+class OptimizeToursResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Routes computed for each vehicle; the i-th route corresponds to the i-th
+ * vehicle in the model.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute routes = 1;
+ */
+ private $routes;
+ /**
+ * Copy of the
+ * [OptimizeToursRequest.label][google.maps.routeoptimization.v1.OptimizeToursRequest.label],
+ * if a label was specified in the request.
+ *
+ * Generated from protobuf field string request_label = 3;
+ */
+ protected $request_label = '';
+ /**
+ * The list of all shipments skipped.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.SkippedShipment skipped_shipments = 4;
+ */
+ private $skipped_shipments;
+ /**
+ * List of all the validation errors that we were able to detect
+ * independently. See the "MULTIPLE ERRORS" explanation for the
+ * [OptimizeToursValidationError][google.maps.routeoptimization.v1.OptimizeToursValidationError]
+ * message. Instead of errors, this will include warnings in the case
+ * `solving_mode` is `DEFAULT_SOLVE`.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.OptimizeToursValidationError validation_errors = 5;
+ */
+ private $validation_errors;
+ /**
+ * Duration, distance and usage metrics for this solution.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.OptimizeToursResponse.Metrics metrics = 6;
+ */
+ protected $metrics = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Maps\RouteOptimization\V1\ShipmentRoute>|\Google\Protobuf\Internal\RepeatedField $routes
+ * Routes computed for each vehicle; the i-th route corresponds to the i-th
+ * vehicle in the model.
+ * @type string $request_label
+ * Copy of the
+ * [OptimizeToursRequest.label][google.maps.routeoptimization.v1.OptimizeToursRequest.label],
+ * if a label was specified in the request.
+ * @type array<\Google\Maps\RouteOptimization\V1\SkippedShipment>|\Google\Protobuf\Internal\RepeatedField $skipped_shipments
+ * The list of all shipments skipped.
+ * @type array<\Google\Maps\RouteOptimization\V1\OptimizeToursValidationError>|\Google\Protobuf\Internal\RepeatedField $validation_errors
+ * List of all the validation errors that we were able to detect
+ * independently. See the "MULTIPLE ERRORS" explanation for the
+ * [OptimizeToursValidationError][google.maps.routeoptimization.v1.OptimizeToursValidationError]
+ * message. Instead of errors, this will include warnings in the case
+ * `solving_mode` is `DEFAULT_SOLVE`.
+ * @type \Google\Maps\RouteOptimization\V1\OptimizeToursResponse\Metrics $metrics
+ * Duration, distance and usage metrics for this solution.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Routes computed for each vehicle; the i-th route corresponds to the i-th
+ * vehicle in the model.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute routes = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRoutes()
+ {
+ return $this->routes;
+ }
+
+ /**
+ * Routes computed for each vehicle; the i-th route corresponds to the i-th
+ * vehicle in the model.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute routes = 1;
+ * @param array<\Google\Maps\RouteOptimization\V1\ShipmentRoute>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRoutes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\ShipmentRoute::class);
+ $this->routes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Copy of the
+ * [OptimizeToursRequest.label][google.maps.routeoptimization.v1.OptimizeToursRequest.label],
+ * if a label was specified in the request.
+ *
+ * Generated from protobuf field string request_label = 3;
+ * @return string
+ */
+ public function getRequestLabel()
+ {
+ return $this->request_label;
+ }
+
+ /**
+ * Copy of the
+ * [OptimizeToursRequest.label][google.maps.routeoptimization.v1.OptimizeToursRequest.label],
+ * if a label was specified in the request.
+ *
+ * Generated from protobuf field string request_label = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestLabel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_label = $var;
+
+ return $this;
+ }
+
+ /**
+ * The list of all shipments skipped.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.SkippedShipment skipped_shipments = 4;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSkippedShipments()
+ {
+ return $this->skipped_shipments;
+ }
+
+ /**
+ * The list of all shipments skipped.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.SkippedShipment skipped_shipments = 4;
+ * @param array<\Google\Maps\RouteOptimization\V1\SkippedShipment>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSkippedShipments($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\SkippedShipment::class);
+ $this->skipped_shipments = $arr;
+
+ return $this;
+ }
+
+ /**
+ * List of all the validation errors that we were able to detect
+ * independently. See the "MULTIPLE ERRORS" explanation for the
+ * [OptimizeToursValidationError][google.maps.routeoptimization.v1.OptimizeToursValidationError]
+ * message. Instead of errors, this will include warnings in the case
+ * `solving_mode` is `DEFAULT_SOLVE`.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.OptimizeToursValidationError validation_errors = 5;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getValidationErrors()
+ {
+ return $this->validation_errors;
+ }
+
+ /**
+ * List of all the validation errors that we were able to detect
+ * independently. See the "MULTIPLE ERRORS" explanation for the
+ * [OptimizeToursValidationError][google.maps.routeoptimization.v1.OptimizeToursValidationError]
+ * message. Instead of errors, this will include warnings in the case
+ * `solving_mode` is `DEFAULT_SOLVE`.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.OptimizeToursValidationError validation_errors = 5;
+ * @param array<\Google\Maps\RouteOptimization\V1\OptimizeToursValidationError>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setValidationErrors($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\OptimizeToursValidationError::class);
+ $this->validation_errors = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Duration, distance and usage metrics for this solution.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.OptimizeToursResponse.Metrics metrics = 6;
+ * @return \Google\Maps\RouteOptimization\V1\OptimizeToursResponse\Metrics|null
+ */
+ public function getMetrics()
+ {
+ return $this->metrics;
+ }
+
+ public function hasMetrics()
+ {
+ return isset($this->metrics);
+ }
+
+ public function clearMetrics()
+ {
+ unset($this->metrics);
+ }
+
+ /**
+ * Duration, distance and usage metrics for this solution.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.OptimizeToursResponse.Metrics metrics = 6;
+ * @param \Google\Maps\RouteOptimization\V1\OptimizeToursResponse\Metrics $var
+ * @return $this
+ */
+ public function setMetrics($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\OptimizeToursResponse\Metrics::class);
+ $this->metrics = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursResponse/Metrics.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursResponse/Metrics.php
new file mode 100644
index 000000000000..88e8bbb1cba8
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursResponse/Metrics.php
@@ -0,0 +1,372 @@
+google.maps.routeoptimization.v1.OptimizeToursResponse.Metrics
+ */
+class Metrics extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Aggregated over the routes. Each metric is the sum (or max, for loads)
+ * over all
+ * [ShipmentRoute.metrics][google.maps.routeoptimization.v1.ShipmentRoute.metrics]
+ * fields of the same name.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.AggregatedMetrics aggregated_route_metrics = 1;
+ */
+ protected $aggregated_route_metrics = null;
+ /**
+ * Number of mandatory shipments skipped.
+ *
+ * Generated from protobuf field int32 skipped_mandatory_shipment_count = 2;
+ */
+ protected $skipped_mandatory_shipment_count = 0;
+ /**
+ * Number of vehicles used. Note: if a vehicle route is empty and
+ * [Vehicle.used_if_route_is_empty][google.maps.routeoptimization.v1.Vehicle.used_if_route_is_empty]
+ * is true, the vehicle is considered used.
+ *
+ * Generated from protobuf field int32 used_vehicle_count = 3;
+ */
+ protected $used_vehicle_count = 0;
+ /**
+ * The earliest start time for a used vehicle, computed as the minimum over
+ * all used vehicles of
+ * [ShipmentRoute.vehicle_start_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_start_time].
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp earliest_vehicle_start_time = 4;
+ */
+ protected $earliest_vehicle_start_time = null;
+ /**
+ * The latest end time for a used vehicle, computed as the maximum over all
+ * used vehicles of
+ * [ShipmentRoute.vehicle_end_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_end_time].
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp latest_vehicle_end_time = 5;
+ */
+ protected $latest_vehicle_end_time = null;
+ /**
+ * Cost of the solution, broken down by cost-related request fields.
+ * The keys are proto paths, relative to the input OptimizeToursRequest,
+ * e.g. "model.shipments.pickups.cost", and the values are the total cost
+ * generated by the corresponding cost field, aggregated over the whole
+ * solution. In other words, costs["model.shipments.pickups.cost"] is the
+ * sum of all pickup costs over the solution. All costs defined in the model
+ * are reported in detail here with the exception of costs related to
+ * TransitionAttributes that are only reported in an aggregated way as of
+ * 2022/01.
+ *
+ * Generated from protobuf field map costs = 10;
+ */
+ private $costs;
+ /**
+ * Total cost of the solution. The sum of all values in the costs map.
+ *
+ * Generated from protobuf field double total_cost = 6;
+ */
+ protected $total_cost = 0.0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\RouteOptimization\V1\AggregatedMetrics $aggregated_route_metrics
+ * Aggregated over the routes. Each metric is the sum (or max, for loads)
+ * over all
+ * [ShipmentRoute.metrics][google.maps.routeoptimization.v1.ShipmentRoute.metrics]
+ * fields of the same name.
+ * @type int $skipped_mandatory_shipment_count
+ * Number of mandatory shipments skipped.
+ * @type int $used_vehicle_count
+ * Number of vehicles used. Note: if a vehicle route is empty and
+ * [Vehicle.used_if_route_is_empty][google.maps.routeoptimization.v1.Vehicle.used_if_route_is_empty]
+ * is true, the vehicle is considered used.
+ * @type \Google\Protobuf\Timestamp $earliest_vehicle_start_time
+ * The earliest start time for a used vehicle, computed as the minimum over
+ * all used vehicles of
+ * [ShipmentRoute.vehicle_start_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_start_time].
+ * @type \Google\Protobuf\Timestamp $latest_vehicle_end_time
+ * The latest end time for a used vehicle, computed as the maximum over all
+ * used vehicles of
+ * [ShipmentRoute.vehicle_end_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_end_time].
+ * @type array|\Google\Protobuf\Internal\MapField $costs
+ * Cost of the solution, broken down by cost-related request fields.
+ * The keys are proto paths, relative to the input OptimizeToursRequest,
+ * e.g. "model.shipments.pickups.cost", and the values are the total cost
+ * generated by the corresponding cost field, aggregated over the whole
+ * solution. In other words, costs["model.shipments.pickups.cost"] is the
+ * sum of all pickup costs over the solution. All costs defined in the model
+ * are reported in detail here with the exception of costs related to
+ * TransitionAttributes that are only reported in an aggregated way as of
+ * 2022/01.
+ * @type float $total_cost
+ * Total cost of the solution. The sum of all values in the costs map.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Aggregated over the routes. Each metric is the sum (or max, for loads)
+ * over all
+ * [ShipmentRoute.metrics][google.maps.routeoptimization.v1.ShipmentRoute.metrics]
+ * fields of the same name.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.AggregatedMetrics aggregated_route_metrics = 1;
+ * @return \Google\Maps\RouteOptimization\V1\AggregatedMetrics|null
+ */
+ public function getAggregatedRouteMetrics()
+ {
+ return $this->aggregated_route_metrics;
+ }
+
+ public function hasAggregatedRouteMetrics()
+ {
+ return isset($this->aggregated_route_metrics);
+ }
+
+ public function clearAggregatedRouteMetrics()
+ {
+ unset($this->aggregated_route_metrics);
+ }
+
+ /**
+ * Aggregated over the routes. Each metric is the sum (or max, for loads)
+ * over all
+ * [ShipmentRoute.metrics][google.maps.routeoptimization.v1.ShipmentRoute.metrics]
+ * fields of the same name.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.AggregatedMetrics aggregated_route_metrics = 1;
+ * @param \Google\Maps\RouteOptimization\V1\AggregatedMetrics $var
+ * @return $this
+ */
+ public function setAggregatedRouteMetrics($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\AggregatedMetrics::class);
+ $this->aggregated_route_metrics = $var;
+
+ return $this;
+ }
+
+ /**
+ * Number of mandatory shipments skipped.
+ *
+ * Generated from protobuf field int32 skipped_mandatory_shipment_count = 2;
+ * @return int
+ */
+ public function getSkippedMandatoryShipmentCount()
+ {
+ return $this->skipped_mandatory_shipment_count;
+ }
+
+ /**
+ * Number of mandatory shipments skipped.
+ *
+ * Generated from protobuf field int32 skipped_mandatory_shipment_count = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setSkippedMandatoryShipmentCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->skipped_mandatory_shipment_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Number of vehicles used. Note: if a vehicle route is empty and
+ * [Vehicle.used_if_route_is_empty][google.maps.routeoptimization.v1.Vehicle.used_if_route_is_empty]
+ * is true, the vehicle is considered used.
+ *
+ * Generated from protobuf field int32 used_vehicle_count = 3;
+ * @return int
+ */
+ public function getUsedVehicleCount()
+ {
+ return $this->used_vehicle_count;
+ }
+
+ /**
+ * Number of vehicles used. Note: if a vehicle route is empty and
+ * [Vehicle.used_if_route_is_empty][google.maps.routeoptimization.v1.Vehicle.used_if_route_is_empty]
+ * is true, the vehicle is considered used.
+ *
+ * Generated from protobuf field int32 used_vehicle_count = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setUsedVehicleCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->used_vehicle_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * The earliest start time for a used vehicle, computed as the minimum over
+ * all used vehicles of
+ * [ShipmentRoute.vehicle_start_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_start_time].
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp earliest_vehicle_start_time = 4;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEarliestVehicleStartTime()
+ {
+ return $this->earliest_vehicle_start_time;
+ }
+
+ public function hasEarliestVehicleStartTime()
+ {
+ return isset($this->earliest_vehicle_start_time);
+ }
+
+ public function clearEarliestVehicleStartTime()
+ {
+ unset($this->earliest_vehicle_start_time);
+ }
+
+ /**
+ * The earliest start time for a used vehicle, computed as the minimum over
+ * all used vehicles of
+ * [ShipmentRoute.vehicle_start_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_start_time].
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp earliest_vehicle_start_time = 4;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEarliestVehicleStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->earliest_vehicle_start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The latest end time for a used vehicle, computed as the maximum over all
+ * used vehicles of
+ * [ShipmentRoute.vehicle_end_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_end_time].
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp latest_vehicle_end_time = 5;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getLatestVehicleEndTime()
+ {
+ return $this->latest_vehicle_end_time;
+ }
+
+ public function hasLatestVehicleEndTime()
+ {
+ return isset($this->latest_vehicle_end_time);
+ }
+
+ public function clearLatestVehicleEndTime()
+ {
+ unset($this->latest_vehicle_end_time);
+ }
+
+ /**
+ * The latest end time for a used vehicle, computed as the maximum over all
+ * used vehicles of
+ * [ShipmentRoute.vehicle_end_time][google.maps.routeoptimization.v1.ShipmentRoute.vehicle_end_time].
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp latest_vehicle_end_time = 5;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setLatestVehicleEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->latest_vehicle_end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Cost of the solution, broken down by cost-related request fields.
+ * The keys are proto paths, relative to the input OptimizeToursRequest,
+ * e.g. "model.shipments.pickups.cost", and the values are the total cost
+ * generated by the corresponding cost field, aggregated over the whole
+ * solution. In other words, costs["model.shipments.pickups.cost"] is the
+ * sum of all pickup costs over the solution. All costs defined in the model
+ * are reported in detail here with the exception of costs related to
+ * TransitionAttributes that are only reported in an aggregated way as of
+ * 2022/01.
+ *
+ * Generated from protobuf field map costs = 10;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getCosts()
+ {
+ return $this->costs;
+ }
+
+ /**
+ * Cost of the solution, broken down by cost-related request fields.
+ * The keys are proto paths, relative to the input OptimizeToursRequest,
+ * e.g. "model.shipments.pickups.cost", and the values are the total cost
+ * generated by the corresponding cost field, aggregated over the whole
+ * solution. In other words, costs["model.shipments.pickups.cost"] is the
+ * sum of all pickup costs over the solution. All costs defined in the model
+ * are reported in detail here with the exception of costs related to
+ * TransitionAttributes that are only reported in an aggregated way as of
+ * 2022/01.
+ *
+ * Generated from protobuf field map costs = 10;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setCosts($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::DOUBLE);
+ $this->costs = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Total cost of the solution. The sum of all values in the costs map.
+ *
+ * Generated from protobuf field double total_cost = 6;
+ * @return float
+ */
+ public function getTotalCost()
+ {
+ return $this->total_cost;
+ }
+
+ /**
+ * Total cost of the solution. The sum of all values in the costs map.
+ *
+ * Generated from protobuf field double total_cost = 6;
+ * @param float $var
+ * @return $this
+ */
+ public function setTotalCost($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->total_cost = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Metrics::class, \Google\Maps\RouteOptimization\V1\OptimizeToursResponse_Metrics::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursValidationError.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursValidationError.php
new file mode 100644
index 000000000000..8f2ad51ee288
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursValidationError.php
@@ -0,0 +1,316 @@
+google.maps.routeoptimization.v1.OptimizeToursValidationError
+ */
+class OptimizeToursValidationError extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A validation error is defined by the pair (`code`, `display_name`) which
+ * are always present.
+ * The fields following this section provide more context about the error.
+ * *MULTIPLE ERRORS*:
+ * When there are multiple errors, the validation process tries to output
+ * several of them. Much like a compiler, this is an imperfect process. Some
+ * validation errors will be "fatal", meaning that they stop the entire
+ * validation process. This is the case for `display_name="UNSPECIFIED"`
+ * errors, among others. Some errors may cause the validation process to skip
+ * other errors.
+ * *STABILITY*:
+ * `code` and `display_name` should be very stable. But new codes and
+ * display names may appear over time, which may cause a given (invalid)
+ * request to yield a different (`code`, `display_name`) pair because the new
+ * error hid the old one. For example, see "MULTIPLE ERRORS".
+ *
+ * Generated from protobuf field int32 code = 1;
+ */
+ protected $code = 0;
+ /**
+ * The error display name.
+ *
+ * Generated from protobuf field string display_name = 2;
+ */
+ protected $display_name = '';
+ /**
+ * An error context may involve 0, 1 (most of the time) or more fields. For
+ * example, referring to vehicle #4 and shipment #2's first pickup can be
+ * done as follows:
+ * ```
+ * fields { name: "vehicles" index: 4}
+ * fields { name: "shipments" index: 2 sub_field {name: "pickups" index: 0} }
+ * ```
+ * Note, however, that the cardinality of `fields` should not change for a
+ * given error code.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.OptimizeToursValidationError.FieldReference fields = 3;
+ */
+ private $fields;
+ /**
+ * Human-readable string describing the error. There is a 1:1 mapping
+ * between `code` and `error_message` (when code != "UNSPECIFIED").
+ * *STABILITY*: Not stable: the error message associated to a given `code` may
+ * change (hopefully to clarify it) over time. Please rely on the
+ * `display_name` and `code` instead.
+ *
+ * Generated from protobuf field string error_message = 4;
+ */
+ protected $error_message = '';
+ /**
+ * May contain the value(s) of the field(s). This is not always available. You
+ * should absolutely not rely on it and use it only for manual model
+ * debugging.
+ *
+ * Generated from protobuf field string offending_values = 5;
+ */
+ protected $offending_values = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $code
+ * A validation error is defined by the pair (`code`, `display_name`) which
+ * are always present.
+ * The fields following this section provide more context about the error.
+ * *MULTIPLE ERRORS*:
+ * When there are multiple errors, the validation process tries to output
+ * several of them. Much like a compiler, this is an imperfect process. Some
+ * validation errors will be "fatal", meaning that they stop the entire
+ * validation process. This is the case for `display_name="UNSPECIFIED"`
+ * errors, among others. Some errors may cause the validation process to skip
+ * other errors.
+ * *STABILITY*:
+ * `code` and `display_name` should be very stable. But new codes and
+ * display names may appear over time, which may cause a given (invalid)
+ * request to yield a different (`code`, `display_name`) pair because the new
+ * error hid the old one. For example, see "MULTIPLE ERRORS".
+ * @type string $display_name
+ * The error display name.
+ * @type array<\Google\Maps\RouteOptimization\V1\OptimizeToursValidationError\FieldReference>|\Google\Protobuf\Internal\RepeatedField $fields
+ * An error context may involve 0, 1 (most of the time) or more fields. For
+ * example, referring to vehicle #4 and shipment #2's first pickup can be
+ * done as follows:
+ * ```
+ * fields { name: "vehicles" index: 4}
+ * fields { name: "shipments" index: 2 sub_field {name: "pickups" index: 0} }
+ * ```
+ * Note, however, that the cardinality of `fields` should not change for a
+ * given error code.
+ * @type string $error_message
+ * Human-readable string describing the error. There is a 1:1 mapping
+ * between `code` and `error_message` (when code != "UNSPECIFIED").
+ * *STABILITY*: Not stable: the error message associated to a given `code` may
+ * change (hopefully to clarify it) over time. Please rely on the
+ * `display_name` and `code` instead.
+ * @type string $offending_values
+ * May contain the value(s) of the field(s). This is not always available. You
+ * should absolutely not rely on it and use it only for manual model
+ * debugging.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A validation error is defined by the pair (`code`, `display_name`) which
+ * are always present.
+ * The fields following this section provide more context about the error.
+ * *MULTIPLE ERRORS*:
+ * When there are multiple errors, the validation process tries to output
+ * several of them. Much like a compiler, this is an imperfect process. Some
+ * validation errors will be "fatal", meaning that they stop the entire
+ * validation process. This is the case for `display_name="UNSPECIFIED"`
+ * errors, among others. Some errors may cause the validation process to skip
+ * other errors.
+ * *STABILITY*:
+ * `code` and `display_name` should be very stable. But new codes and
+ * display names may appear over time, which may cause a given (invalid)
+ * request to yield a different (`code`, `display_name`) pair because the new
+ * error hid the old one. For example, see "MULTIPLE ERRORS".
+ *
+ * Generated from protobuf field int32 code = 1;
+ * @return int
+ */
+ public function getCode()
+ {
+ return $this->code;
+ }
+
+ /**
+ * A validation error is defined by the pair (`code`, `display_name`) which
+ * are always present.
+ * The fields following this section provide more context about the error.
+ * *MULTIPLE ERRORS*:
+ * When there are multiple errors, the validation process tries to output
+ * several of them. Much like a compiler, this is an imperfect process. Some
+ * validation errors will be "fatal", meaning that they stop the entire
+ * validation process. This is the case for `display_name="UNSPECIFIED"`
+ * errors, among others. Some errors may cause the validation process to skip
+ * other errors.
+ * *STABILITY*:
+ * `code` and `display_name` should be very stable. But new codes and
+ * display names may appear over time, which may cause a given (invalid)
+ * request to yield a different (`code`, `display_name`) pair because the new
+ * error hid the old one. For example, see "MULTIPLE ERRORS".
+ *
+ * Generated from protobuf field int32 code = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setCode($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->code = $var;
+
+ return $this;
+ }
+
+ /**
+ * The error display name.
+ *
+ * Generated from protobuf field string display_name = 2;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * The error display name.
+ *
+ * Generated from protobuf field string display_name = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * An error context may involve 0, 1 (most of the time) or more fields. For
+ * example, referring to vehicle #4 and shipment #2's first pickup can be
+ * done as follows:
+ * ```
+ * fields { name: "vehicles" index: 4}
+ * fields { name: "shipments" index: 2 sub_field {name: "pickups" index: 0} }
+ * ```
+ * Note, however, that the cardinality of `fields` should not change for a
+ * given error code.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.OptimizeToursValidationError.FieldReference fields = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getFields()
+ {
+ return $this->fields;
+ }
+
+ /**
+ * An error context may involve 0, 1 (most of the time) or more fields. For
+ * example, referring to vehicle #4 and shipment #2's first pickup can be
+ * done as follows:
+ * ```
+ * fields { name: "vehicles" index: 4}
+ * fields { name: "shipments" index: 2 sub_field {name: "pickups" index: 0} }
+ * ```
+ * Note, however, that the cardinality of `fields` should not change for a
+ * given error code.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.OptimizeToursValidationError.FieldReference fields = 3;
+ * @param array<\Google\Maps\RouteOptimization\V1\OptimizeToursValidationError\FieldReference>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setFields($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\OptimizeToursValidationError\FieldReference::class);
+ $this->fields = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Human-readable string describing the error. There is a 1:1 mapping
+ * between `code` and `error_message` (when code != "UNSPECIFIED").
+ * *STABILITY*: Not stable: the error message associated to a given `code` may
+ * change (hopefully to clarify it) over time. Please rely on the
+ * `display_name` and `code` instead.
+ *
+ * Generated from protobuf field string error_message = 4;
+ * @return string
+ */
+ public function getErrorMessage()
+ {
+ return $this->error_message;
+ }
+
+ /**
+ * Human-readable string describing the error. There is a 1:1 mapping
+ * between `code` and `error_message` (when code != "UNSPECIFIED").
+ * *STABILITY*: Not stable: the error message associated to a given `code` may
+ * change (hopefully to clarify it) over time. Please rely on the
+ * `display_name` and `code` instead.
+ *
+ * Generated from protobuf field string error_message = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setErrorMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->error_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * May contain the value(s) of the field(s). This is not always available. You
+ * should absolutely not rely on it and use it only for manual model
+ * debugging.
+ *
+ * Generated from protobuf field string offending_values = 5;
+ * @return string
+ */
+ public function getOffendingValues()
+ {
+ return $this->offending_values;
+ }
+
+ /**
+ * May contain the value(s) of the field(s). This is not always available. You
+ * should absolutely not rely on it and use it only for manual model
+ * debugging.
+ *
+ * Generated from protobuf field string offending_values = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOffendingValues($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->offending_values = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursValidationError/FieldReference.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursValidationError/FieldReference.php
new file mode 100644
index 000000000000..0956451618ea
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OptimizeToursValidationError/FieldReference.php
@@ -0,0 +1,197 @@
+google.maps.routeoptimization.v1.OptimizeToursValidationError.FieldReference
+ */
+class FieldReference extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Name of the field, e.g., "vehicles".
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * Recursively nested sub-field, if needed.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.OptimizeToursValidationError.FieldReference sub_field = 3;
+ */
+ protected $sub_field = null;
+ protected $index_or_key;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Name of the field, e.g., "vehicles".
+ * @type int $index
+ * Index of the field if repeated.
+ * @type string $key
+ * Key if the field is a map.
+ * @type \Google\Maps\RouteOptimization\V1\OptimizeToursValidationError\FieldReference $sub_field
+ * Recursively nested sub-field, if needed.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Name of the field, e.g., "vehicles".
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Name of the field, e.g., "vehicles".
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Index of the field if repeated.
+ *
+ * Generated from protobuf field int32 index = 2;
+ * @return int
+ */
+ public function getIndex()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasIndex()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Index of the field if repeated.
+ *
+ * Generated from protobuf field int32 index = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setIndex($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Key if the field is a map.
+ *
+ * Generated from protobuf field string key = 4;
+ * @return string
+ */
+ public function getKey()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasKey()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Key if the field is a map.
+ *
+ * Generated from protobuf field string key = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setKey($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Recursively nested sub-field, if needed.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.OptimizeToursValidationError.FieldReference sub_field = 3;
+ * @return \Google\Maps\RouteOptimization\V1\OptimizeToursValidationError\FieldReference|null
+ */
+ public function getSubField()
+ {
+ return $this->sub_field;
+ }
+
+ public function hasSubField()
+ {
+ return isset($this->sub_field);
+ }
+
+ public function clearSubField()
+ {
+ unset($this->sub_field);
+ }
+
+ /**
+ * Recursively nested sub-field, if needed.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.OptimizeToursValidationError.FieldReference sub_field = 3;
+ * @param \Google\Maps\RouteOptimization\V1\OptimizeToursValidationError\FieldReference $var
+ * @return $this
+ */
+ public function setSubField($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\OptimizeToursValidationError\FieldReference::class);
+ $this->sub_field = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getIndexOrKey()
+ {
+ return $this->whichOneof("index_or_key");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(FieldReference::class, \Google\Maps\RouteOptimization\V1\OptimizeToursValidationError_FieldReference::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OutputConfig.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OutputConfig.php
new file mode 100644
index 000000000000..7ed7e0a1d93f
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/OutputConfig.php
@@ -0,0 +1,111 @@
+google.maps.routeoptimization.v1.OutputConfig
+ */
+class OutputConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The output data format.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.DataFormat data_format = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $data_format = 0;
+ protected $destination;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\RouteOptimization\V1\GcsDestination $gcs_destination
+ * The Google Cloud Storage location to write the output to.
+ * @type int $data_format
+ * Required. The output data format.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The Google Cloud Storage location to write the output to.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.GcsDestination gcs_destination = 1;
+ * @return \Google\Maps\RouteOptimization\V1\GcsDestination|null
+ */
+ public function getGcsDestination()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasGcsDestination()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * The Google Cloud Storage location to write the output to.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.GcsDestination gcs_destination = 1;
+ * @param \Google\Maps\RouteOptimization\V1\GcsDestination $var
+ * @return $this
+ */
+ public function setGcsDestination($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\GcsDestination::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Required. The output data format.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.DataFormat data_format = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getDataFormat()
+ {
+ return $this->data_format;
+ }
+
+ /**
+ * Required. The output data format.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.DataFormat data_format = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setDataFormat($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\RouteOptimization\V1\DataFormat::class);
+ $this->data_format = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDestination()
+ {
+ return $this->whichOneof("destination");
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/RouteModifiers.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/RouteModifiers.php
new file mode 100644
index 000000000000..941420fd652c
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/RouteModifiers.php
@@ -0,0 +1,204 @@
+google.maps.routeoptimization.v1.RouteModifiers
+ */
+class RouteModifiers extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Specifies whether to avoid toll roads where reasonable. Preference will be
+ * given to routes not containing toll roads. Applies only to motorized travel
+ * modes.
+ *
+ * Generated from protobuf field bool avoid_tolls = 2;
+ */
+ protected $avoid_tolls = false;
+ /**
+ * Specifies whether to avoid highways where reasonable. Preference will be
+ * given to routes not containing highways. Applies only to motorized travel
+ * modes.
+ *
+ * Generated from protobuf field bool avoid_highways = 3;
+ */
+ protected $avoid_highways = false;
+ /**
+ * Specifies whether to avoid ferries where reasonable. Preference will be
+ * given to routes not containing travel by ferries. Applies only to motorized
+ * travel modes.
+ *
+ * Generated from protobuf field bool avoid_ferries = 4;
+ */
+ protected $avoid_ferries = false;
+ /**
+ * Optional. Specifies whether to avoid navigating indoors where reasonable.
+ * Preference will be given to routes not containing indoor navigation.
+ * Applies only to the `WALKING` travel mode.
+ *
+ * Generated from protobuf field bool avoid_indoor = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $avoid_indoor = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $avoid_tolls
+ * Specifies whether to avoid toll roads where reasonable. Preference will be
+ * given to routes not containing toll roads. Applies only to motorized travel
+ * modes.
+ * @type bool $avoid_highways
+ * Specifies whether to avoid highways where reasonable. Preference will be
+ * given to routes not containing highways. Applies only to motorized travel
+ * modes.
+ * @type bool $avoid_ferries
+ * Specifies whether to avoid ferries where reasonable. Preference will be
+ * given to routes not containing travel by ferries. Applies only to motorized
+ * travel modes.
+ * @type bool $avoid_indoor
+ * Optional. Specifies whether to avoid navigating indoors where reasonable.
+ * Preference will be given to routes not containing indoor navigation.
+ * Applies only to the `WALKING` travel mode.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Specifies whether to avoid toll roads where reasonable. Preference will be
+ * given to routes not containing toll roads. Applies only to motorized travel
+ * modes.
+ *
+ * Generated from protobuf field bool avoid_tolls = 2;
+ * @return bool
+ */
+ public function getAvoidTolls()
+ {
+ return $this->avoid_tolls;
+ }
+
+ /**
+ * Specifies whether to avoid toll roads where reasonable. Preference will be
+ * given to routes not containing toll roads. Applies only to motorized travel
+ * modes.
+ *
+ * Generated from protobuf field bool avoid_tolls = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setAvoidTolls($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->avoid_tolls = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies whether to avoid highways where reasonable. Preference will be
+ * given to routes not containing highways. Applies only to motorized travel
+ * modes.
+ *
+ * Generated from protobuf field bool avoid_highways = 3;
+ * @return bool
+ */
+ public function getAvoidHighways()
+ {
+ return $this->avoid_highways;
+ }
+
+ /**
+ * Specifies whether to avoid highways where reasonable. Preference will be
+ * given to routes not containing highways. Applies only to motorized travel
+ * modes.
+ *
+ * Generated from protobuf field bool avoid_highways = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setAvoidHighways($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->avoid_highways = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies whether to avoid ferries where reasonable. Preference will be
+ * given to routes not containing travel by ferries. Applies only to motorized
+ * travel modes.
+ *
+ * Generated from protobuf field bool avoid_ferries = 4;
+ * @return bool
+ */
+ public function getAvoidFerries()
+ {
+ return $this->avoid_ferries;
+ }
+
+ /**
+ * Specifies whether to avoid ferries where reasonable. Preference will be
+ * given to routes not containing travel by ferries. Applies only to motorized
+ * travel modes.
+ *
+ * Generated from protobuf field bool avoid_ferries = 4;
+ * @param bool $var
+ * @return $this
+ */
+ public function setAvoidFerries($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->avoid_ferries = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Specifies whether to avoid navigating indoors where reasonable.
+ * Preference will be given to routes not containing indoor navigation.
+ * Applies only to the `WALKING` travel mode.
+ *
+ * Generated from protobuf field bool avoid_indoor = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getAvoidIndoor()
+ {
+ return $this->avoid_indoor;
+ }
+
+ /**
+ * Optional. Specifies whether to avoid navigating indoors where reasonable.
+ * Preference will be given to routes not containing indoor navigation.
+ * Applies only to the `WALKING` travel mode.
+ *
+ * Generated from protobuf field bool avoid_indoor = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setAvoidIndoor($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->avoid_indoor = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Shipment.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Shipment.php
new file mode 100644
index 000000000000..c3de173e6cc8
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Shipment.php
@@ -0,0 +1,841 @@
+google.maps.routeoptimization.v1.Shipment
+ */
+class Shipment extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The user-defined display name of the shipment.
+ * It can be up to 63 characters long and may use UTF-8 characters.
+ *
+ * Generated from protobuf field string display_name = 16;
+ */
+ protected $display_name = '';
+ /**
+ * Set of pickup alternatives associated to the shipment. If not specified,
+ * the vehicle only needs to visit a location corresponding to the deliveries.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.Shipment.VisitRequest pickups = 1;
+ */
+ private $pickups;
+ /**
+ * Set of delivery alternatives associated to the shipment. If not specified,
+ * the vehicle only needs to visit a location corresponding to the pickups.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.Shipment.VisitRequest deliveries = 2;
+ */
+ private $deliveries;
+ /**
+ * Load demands of the shipment (for example weight, volume, number of
+ * pallets etc). The keys in the map should be identifiers describing the type
+ * of the corresponding load, ideally also including the units.
+ * For example: "weight_kg", "volume_gallons", "pallet_count", etc.
+ * If a given key does not appear in the map, the corresponding load is
+ * considered as null.
+ *
+ * Generated from protobuf field map load_demands = 14;
+ */
+ private $load_demands;
+ /**
+ * If the shipment is not completed, this penalty is added to the overall
+ * cost of the routes. A shipment is considered completed if one of its pickup
+ * and delivery alternatives is visited. The cost may be expressed in the
+ * same unit used for all other cost-related fields in the model and must be
+ * positive.
+ * *IMPORTANT*: If this penalty is not specified, it is considered infinite,
+ * i.e. the shipment must be completed.
+ *
+ * Generated from protobuf field optional double penalty_cost = 4;
+ */
+ protected $penalty_cost = null;
+ /**
+ * The set of vehicles that may perform this shipment. If empty, all vehicles
+ * may perform it. Vehicles are given by their index in the `ShipmentModel`'s
+ * `vehicles` list.
+ *
+ * Generated from protobuf field repeated int32 allowed_vehicle_indices = 5;
+ */
+ private $allowed_vehicle_indices;
+ /**
+ * Specifies the cost that is incurred when this shipment is delivered by each
+ * vehicle. If specified, it must have EITHER:
+ * * the same number of elements as `costs_per_vehicle_indices`.
+ * `costs_per_vehicle[i]` corresponds to vehicle
+ * `costs_per_vehicle_indices[i]` of the model.
+ * * the same number of elements as there are vehicles in the model. The
+ * i-th element corresponds to vehicle #i of the model.
+ * These costs must be in the same unit as `penalty_cost` and must not be
+ * negative. Leave this field empty, if there are no such costs.
+ *
+ * Generated from protobuf field repeated double costs_per_vehicle = 6;
+ */
+ private $costs_per_vehicle;
+ /**
+ * Indices of the vehicles to which `costs_per_vehicle` applies. If non-empty,
+ * it must have the same number of elements as `costs_per_vehicle`. A vehicle
+ * index may not be specified more than once. If a vehicle is excluded from
+ * `costs_per_vehicle_indices`, its cost is zero.
+ *
+ * Generated from protobuf field repeated int32 costs_per_vehicle_indices = 7;
+ */
+ private $costs_per_vehicle_indices;
+ /**
+ * Specifies the maximum relative detour time compared to the shortest path
+ * from pickup to delivery. If specified, it must be nonnegative, and the
+ * shipment must contain at least a pickup and a delivery.
+ * For example, let t be the shortest time taken to go from the selected
+ * pickup alternative directly to the selected delivery alternative. Then
+ * setting `pickup_to_delivery_relative_detour_limit` enforces:
+ * ```
+ * start_time(delivery) - start_time(pickup) <=
+ * std::ceil(t * (1.0 + pickup_to_delivery_relative_detour_limit))
+ * ```
+ * If both relative and absolute limits are specified on the same shipment,
+ * the more constraining limit is used for each possible pickup/delivery pair.
+ * As of 2017/10, detours are only supported when travel durations do not
+ * depend on vehicles.
+ *
+ * Generated from protobuf field optional double pickup_to_delivery_relative_detour_limit = 8;
+ */
+ protected $pickup_to_delivery_relative_detour_limit = null;
+ /**
+ * Specifies the maximum absolute detour time compared to the shortest path
+ * from pickup to delivery. If specified, it must be nonnegative, and the
+ * shipment must contain at least a pickup and a delivery.
+ * For example, let t be the shortest time taken to go from the selected
+ * pickup alternative directly to the selected delivery alternative. Then
+ * setting `pickup_to_delivery_absolute_detour_limit` enforces:
+ * ```
+ * start_time(delivery) - start_time(pickup) <=
+ * t + pickup_to_delivery_absolute_detour_limit
+ * ```
+ * If both relative and absolute limits are specified on the same shipment,
+ * the more constraining limit is used for each possible pickup/delivery pair.
+ * As of 2017/10, detours are only supported when travel durations do not
+ * depend on vehicles.
+ *
+ * Generated from protobuf field .google.protobuf.Duration pickup_to_delivery_absolute_detour_limit = 9;
+ */
+ protected $pickup_to_delivery_absolute_detour_limit = null;
+ /**
+ * Specifies the maximum duration from start of pickup to start of delivery of
+ * a shipment. If specified, it must be nonnegative, and the shipment must
+ * contain at least a pickup and a delivery. This does not depend on which
+ * alternatives are selected for pickup and delivery, nor on vehicle speed.
+ * This can be specified alongside maximum detour constraints: the solution
+ * will respect both specifications.
+ *
+ * Generated from protobuf field .google.protobuf.Duration pickup_to_delivery_time_limit = 10;
+ */
+ protected $pickup_to_delivery_time_limit = null;
+ /**
+ * Non-empty string specifying a "type" for this shipment.
+ * This feature can be used to define incompatibilities or requirements
+ * between `shipment_types` (see `shipment_type_incompatibilities` and
+ * `shipment_type_requirements` in `ShipmentModel`).
+ * Differs from `visit_types` which is specified for a single visit: All
+ * pickup/deliveries belonging to the same shipment share the same
+ * `shipment_type`.
+ *
+ * Generated from protobuf field string shipment_type = 11;
+ */
+ protected $shipment_type = '';
+ /**
+ * Specifies a label for this shipment. This label is reported in the response
+ * in the `shipment_label` of the corresponding
+ * [ShipmentRoute.Visit][google.maps.routeoptimization.v1.ShipmentRoute.Visit].
+ *
+ * Generated from protobuf field string label = 12;
+ */
+ protected $label = '';
+ /**
+ * If true, skip this shipment, but don't apply a `penalty_cost`.
+ * Ignoring a shipment results in a validation error when there are any
+ * `shipment_type_requirements` in the model.
+ * Ignoring a shipment that is performed in `injected_first_solution_routes`
+ * or `injected_solution_constraint` is permitted; the solver removes the
+ * related pickup/delivery visits from the performing route.
+ * `precedence_rules` that reference ignored shipments will also be ignored.
+ *
+ * Generated from protobuf field bool ignore = 13;
+ */
+ protected $ignore = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $display_name
+ * The user-defined display name of the shipment.
+ * It can be up to 63 characters long and may use UTF-8 characters.
+ * @type array<\Google\Maps\RouteOptimization\V1\Shipment\VisitRequest>|\Google\Protobuf\Internal\RepeatedField $pickups
+ * Set of pickup alternatives associated to the shipment. If not specified,
+ * the vehicle only needs to visit a location corresponding to the deliveries.
+ * @type array<\Google\Maps\RouteOptimization\V1\Shipment\VisitRequest>|\Google\Protobuf\Internal\RepeatedField $deliveries
+ * Set of delivery alternatives associated to the shipment. If not specified,
+ * the vehicle only needs to visit a location corresponding to the pickups.
+ * @type array|\Google\Protobuf\Internal\MapField $load_demands
+ * Load demands of the shipment (for example weight, volume, number of
+ * pallets etc). The keys in the map should be identifiers describing the type
+ * of the corresponding load, ideally also including the units.
+ * For example: "weight_kg", "volume_gallons", "pallet_count", etc.
+ * If a given key does not appear in the map, the corresponding load is
+ * considered as null.
+ * @type float $penalty_cost
+ * If the shipment is not completed, this penalty is added to the overall
+ * cost of the routes. A shipment is considered completed if one of its pickup
+ * and delivery alternatives is visited. The cost may be expressed in the
+ * same unit used for all other cost-related fields in the model and must be
+ * positive.
+ * *IMPORTANT*: If this penalty is not specified, it is considered infinite,
+ * i.e. the shipment must be completed.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $allowed_vehicle_indices
+ * The set of vehicles that may perform this shipment. If empty, all vehicles
+ * may perform it. Vehicles are given by their index in the `ShipmentModel`'s
+ * `vehicles` list.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $costs_per_vehicle
+ * Specifies the cost that is incurred when this shipment is delivered by each
+ * vehicle. If specified, it must have EITHER:
+ * * the same number of elements as `costs_per_vehicle_indices`.
+ * `costs_per_vehicle[i]` corresponds to vehicle
+ * `costs_per_vehicle_indices[i]` of the model.
+ * * the same number of elements as there are vehicles in the model. The
+ * i-th element corresponds to vehicle #i of the model.
+ * These costs must be in the same unit as `penalty_cost` and must not be
+ * negative. Leave this field empty, if there are no such costs.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $costs_per_vehicle_indices
+ * Indices of the vehicles to which `costs_per_vehicle` applies. If non-empty,
+ * it must have the same number of elements as `costs_per_vehicle`. A vehicle
+ * index may not be specified more than once. If a vehicle is excluded from
+ * `costs_per_vehicle_indices`, its cost is zero.
+ * @type float $pickup_to_delivery_relative_detour_limit
+ * Specifies the maximum relative detour time compared to the shortest path
+ * from pickup to delivery. If specified, it must be nonnegative, and the
+ * shipment must contain at least a pickup and a delivery.
+ * For example, let t be the shortest time taken to go from the selected
+ * pickup alternative directly to the selected delivery alternative. Then
+ * setting `pickup_to_delivery_relative_detour_limit` enforces:
+ * ```
+ * start_time(delivery) - start_time(pickup) <=
+ * std::ceil(t * (1.0 + pickup_to_delivery_relative_detour_limit))
+ * ```
+ * If both relative and absolute limits are specified on the same shipment,
+ * the more constraining limit is used for each possible pickup/delivery pair.
+ * As of 2017/10, detours are only supported when travel durations do not
+ * depend on vehicles.
+ * @type \Google\Protobuf\Duration $pickup_to_delivery_absolute_detour_limit
+ * Specifies the maximum absolute detour time compared to the shortest path
+ * from pickup to delivery. If specified, it must be nonnegative, and the
+ * shipment must contain at least a pickup and a delivery.
+ * For example, let t be the shortest time taken to go from the selected
+ * pickup alternative directly to the selected delivery alternative. Then
+ * setting `pickup_to_delivery_absolute_detour_limit` enforces:
+ * ```
+ * start_time(delivery) - start_time(pickup) <=
+ * t + pickup_to_delivery_absolute_detour_limit
+ * ```
+ * If both relative and absolute limits are specified on the same shipment,
+ * the more constraining limit is used for each possible pickup/delivery pair.
+ * As of 2017/10, detours are only supported when travel durations do not
+ * depend on vehicles.
+ * @type \Google\Protobuf\Duration $pickup_to_delivery_time_limit
+ * Specifies the maximum duration from start of pickup to start of delivery of
+ * a shipment. If specified, it must be nonnegative, and the shipment must
+ * contain at least a pickup and a delivery. This does not depend on which
+ * alternatives are selected for pickup and delivery, nor on vehicle speed.
+ * This can be specified alongside maximum detour constraints: the solution
+ * will respect both specifications.
+ * @type string $shipment_type
+ * Non-empty string specifying a "type" for this shipment.
+ * This feature can be used to define incompatibilities or requirements
+ * between `shipment_types` (see `shipment_type_incompatibilities` and
+ * `shipment_type_requirements` in `ShipmentModel`).
+ * Differs from `visit_types` which is specified for a single visit: All
+ * pickup/deliveries belonging to the same shipment share the same
+ * `shipment_type`.
+ * @type string $label
+ * Specifies a label for this shipment. This label is reported in the response
+ * in the `shipment_label` of the corresponding
+ * [ShipmentRoute.Visit][google.maps.routeoptimization.v1.ShipmentRoute.Visit].
+ * @type bool $ignore
+ * If true, skip this shipment, but don't apply a `penalty_cost`.
+ * Ignoring a shipment results in a validation error when there are any
+ * `shipment_type_requirements` in the model.
+ * Ignoring a shipment that is performed in `injected_first_solution_routes`
+ * or `injected_solution_constraint` is permitted; the solver removes the
+ * related pickup/delivery visits from the performing route.
+ * `precedence_rules` that reference ignored shipments will also be ignored.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The user-defined display name of the shipment.
+ * It can be up to 63 characters long and may use UTF-8 characters.
+ *
+ * Generated from protobuf field string display_name = 16;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * The user-defined display name of the shipment.
+ * It can be up to 63 characters long and may use UTF-8 characters.
+ *
+ * Generated from protobuf field string display_name = 16;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Set of pickup alternatives associated to the shipment. If not specified,
+ * the vehicle only needs to visit a location corresponding to the deliveries.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.Shipment.VisitRequest pickups = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPickups()
+ {
+ return $this->pickups;
+ }
+
+ /**
+ * Set of pickup alternatives associated to the shipment. If not specified,
+ * the vehicle only needs to visit a location corresponding to the deliveries.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.Shipment.VisitRequest pickups = 1;
+ * @param array<\Google\Maps\RouteOptimization\V1\Shipment\VisitRequest>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPickups($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\Shipment\VisitRequest::class);
+ $this->pickups = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Set of delivery alternatives associated to the shipment. If not specified,
+ * the vehicle only needs to visit a location corresponding to the pickups.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.Shipment.VisitRequest deliveries = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDeliveries()
+ {
+ return $this->deliveries;
+ }
+
+ /**
+ * Set of delivery alternatives associated to the shipment. If not specified,
+ * the vehicle only needs to visit a location corresponding to the pickups.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.Shipment.VisitRequest deliveries = 2;
+ * @param array<\Google\Maps\RouteOptimization\V1\Shipment\VisitRequest>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDeliveries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\Shipment\VisitRequest::class);
+ $this->deliveries = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Load demands of the shipment (for example weight, volume, number of
+ * pallets etc). The keys in the map should be identifiers describing the type
+ * of the corresponding load, ideally also including the units.
+ * For example: "weight_kg", "volume_gallons", "pallet_count", etc.
+ * If a given key does not appear in the map, the corresponding load is
+ * considered as null.
+ *
+ * Generated from protobuf field map load_demands = 14;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLoadDemands()
+ {
+ return $this->load_demands;
+ }
+
+ /**
+ * Load demands of the shipment (for example weight, volume, number of
+ * pallets etc). The keys in the map should be identifiers describing the type
+ * of the corresponding load, ideally also including the units.
+ * For example: "weight_kg", "volume_gallons", "pallet_count", etc.
+ * If a given key does not appear in the map, the corresponding load is
+ * considered as null.
+ *
+ * Generated from protobuf field map load_demands = 14;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLoadDemands($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\Shipment\Load::class);
+ $this->load_demands = $arr;
+
+ return $this;
+ }
+
+ /**
+ * If the shipment is not completed, this penalty is added to the overall
+ * cost of the routes. A shipment is considered completed if one of its pickup
+ * and delivery alternatives is visited. The cost may be expressed in the
+ * same unit used for all other cost-related fields in the model and must be
+ * positive.
+ * *IMPORTANT*: If this penalty is not specified, it is considered infinite,
+ * i.e. the shipment must be completed.
+ *
+ * Generated from protobuf field optional double penalty_cost = 4;
+ * @return float
+ */
+ public function getPenaltyCost()
+ {
+ return isset($this->penalty_cost) ? $this->penalty_cost : 0.0;
+ }
+
+ public function hasPenaltyCost()
+ {
+ return isset($this->penalty_cost);
+ }
+
+ public function clearPenaltyCost()
+ {
+ unset($this->penalty_cost);
+ }
+
+ /**
+ * If the shipment is not completed, this penalty is added to the overall
+ * cost of the routes. A shipment is considered completed if one of its pickup
+ * and delivery alternatives is visited. The cost may be expressed in the
+ * same unit used for all other cost-related fields in the model and must be
+ * positive.
+ * *IMPORTANT*: If this penalty is not specified, it is considered infinite,
+ * i.e. the shipment must be completed.
+ *
+ * Generated from protobuf field optional double penalty_cost = 4;
+ * @param float $var
+ * @return $this
+ */
+ public function setPenaltyCost($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->penalty_cost = $var;
+
+ return $this;
+ }
+
+ /**
+ * The set of vehicles that may perform this shipment. If empty, all vehicles
+ * may perform it. Vehicles are given by their index in the `ShipmentModel`'s
+ * `vehicles` list.
+ *
+ * Generated from protobuf field repeated int32 allowed_vehicle_indices = 5;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAllowedVehicleIndices()
+ {
+ return $this->allowed_vehicle_indices;
+ }
+
+ /**
+ * The set of vehicles that may perform this shipment. If empty, all vehicles
+ * may perform it. Vehicles are given by their index in the `ShipmentModel`'s
+ * `vehicles` list.
+ *
+ * Generated from protobuf field repeated int32 allowed_vehicle_indices = 5;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAllowedVehicleIndices($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32);
+ $this->allowed_vehicle_indices = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Specifies the cost that is incurred when this shipment is delivered by each
+ * vehicle. If specified, it must have EITHER:
+ * * the same number of elements as `costs_per_vehicle_indices`.
+ * `costs_per_vehicle[i]` corresponds to vehicle
+ * `costs_per_vehicle_indices[i]` of the model.
+ * * the same number of elements as there are vehicles in the model. The
+ * i-th element corresponds to vehicle #i of the model.
+ * These costs must be in the same unit as `penalty_cost` and must not be
+ * negative. Leave this field empty, if there are no such costs.
+ *
+ * Generated from protobuf field repeated double costs_per_vehicle = 6;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getCostsPerVehicle()
+ {
+ return $this->costs_per_vehicle;
+ }
+
+ /**
+ * Specifies the cost that is incurred when this shipment is delivered by each
+ * vehicle. If specified, it must have EITHER:
+ * * the same number of elements as `costs_per_vehicle_indices`.
+ * `costs_per_vehicle[i]` corresponds to vehicle
+ * `costs_per_vehicle_indices[i]` of the model.
+ * * the same number of elements as there are vehicles in the model. The
+ * i-th element corresponds to vehicle #i of the model.
+ * These costs must be in the same unit as `penalty_cost` and must not be
+ * negative. Leave this field empty, if there are no such costs.
+ *
+ * Generated from protobuf field repeated double costs_per_vehicle = 6;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setCostsPerVehicle($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::DOUBLE);
+ $this->costs_per_vehicle = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Indices of the vehicles to which `costs_per_vehicle` applies. If non-empty,
+ * it must have the same number of elements as `costs_per_vehicle`. A vehicle
+ * index may not be specified more than once. If a vehicle is excluded from
+ * `costs_per_vehicle_indices`, its cost is zero.
+ *
+ * Generated from protobuf field repeated int32 costs_per_vehicle_indices = 7;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getCostsPerVehicleIndices()
+ {
+ return $this->costs_per_vehicle_indices;
+ }
+
+ /**
+ * Indices of the vehicles to which `costs_per_vehicle` applies. If non-empty,
+ * it must have the same number of elements as `costs_per_vehicle`. A vehicle
+ * index may not be specified more than once. If a vehicle is excluded from
+ * `costs_per_vehicle_indices`, its cost is zero.
+ *
+ * Generated from protobuf field repeated int32 costs_per_vehicle_indices = 7;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setCostsPerVehicleIndices($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32);
+ $this->costs_per_vehicle_indices = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Specifies the maximum relative detour time compared to the shortest path
+ * from pickup to delivery. If specified, it must be nonnegative, and the
+ * shipment must contain at least a pickup and a delivery.
+ * For example, let t be the shortest time taken to go from the selected
+ * pickup alternative directly to the selected delivery alternative. Then
+ * setting `pickup_to_delivery_relative_detour_limit` enforces:
+ * ```
+ * start_time(delivery) - start_time(pickup) <=
+ * std::ceil(t * (1.0 + pickup_to_delivery_relative_detour_limit))
+ * ```
+ * If both relative and absolute limits are specified on the same shipment,
+ * the more constraining limit is used for each possible pickup/delivery pair.
+ * As of 2017/10, detours are only supported when travel durations do not
+ * depend on vehicles.
+ *
+ * Generated from protobuf field optional double pickup_to_delivery_relative_detour_limit = 8;
+ * @return float
+ */
+ public function getPickupToDeliveryRelativeDetourLimit()
+ {
+ return isset($this->pickup_to_delivery_relative_detour_limit) ? $this->pickup_to_delivery_relative_detour_limit : 0.0;
+ }
+
+ public function hasPickupToDeliveryRelativeDetourLimit()
+ {
+ return isset($this->pickup_to_delivery_relative_detour_limit);
+ }
+
+ public function clearPickupToDeliveryRelativeDetourLimit()
+ {
+ unset($this->pickup_to_delivery_relative_detour_limit);
+ }
+
+ /**
+ * Specifies the maximum relative detour time compared to the shortest path
+ * from pickup to delivery. If specified, it must be nonnegative, and the
+ * shipment must contain at least a pickup and a delivery.
+ * For example, let t be the shortest time taken to go from the selected
+ * pickup alternative directly to the selected delivery alternative. Then
+ * setting `pickup_to_delivery_relative_detour_limit` enforces:
+ * ```
+ * start_time(delivery) - start_time(pickup) <=
+ * std::ceil(t * (1.0 + pickup_to_delivery_relative_detour_limit))
+ * ```
+ * If both relative and absolute limits are specified on the same shipment,
+ * the more constraining limit is used for each possible pickup/delivery pair.
+ * As of 2017/10, detours are only supported when travel durations do not
+ * depend on vehicles.
+ *
+ * Generated from protobuf field optional double pickup_to_delivery_relative_detour_limit = 8;
+ * @param float $var
+ * @return $this
+ */
+ public function setPickupToDeliveryRelativeDetourLimit($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->pickup_to_delivery_relative_detour_limit = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies the maximum absolute detour time compared to the shortest path
+ * from pickup to delivery. If specified, it must be nonnegative, and the
+ * shipment must contain at least a pickup and a delivery.
+ * For example, let t be the shortest time taken to go from the selected
+ * pickup alternative directly to the selected delivery alternative. Then
+ * setting `pickup_to_delivery_absolute_detour_limit` enforces:
+ * ```
+ * start_time(delivery) - start_time(pickup) <=
+ * t + pickup_to_delivery_absolute_detour_limit
+ * ```
+ * If both relative and absolute limits are specified on the same shipment,
+ * the more constraining limit is used for each possible pickup/delivery pair.
+ * As of 2017/10, detours are only supported when travel durations do not
+ * depend on vehicles.
+ *
+ * Generated from protobuf field .google.protobuf.Duration pickup_to_delivery_absolute_detour_limit = 9;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getPickupToDeliveryAbsoluteDetourLimit()
+ {
+ return $this->pickup_to_delivery_absolute_detour_limit;
+ }
+
+ public function hasPickupToDeliveryAbsoluteDetourLimit()
+ {
+ return isset($this->pickup_to_delivery_absolute_detour_limit);
+ }
+
+ public function clearPickupToDeliveryAbsoluteDetourLimit()
+ {
+ unset($this->pickup_to_delivery_absolute_detour_limit);
+ }
+
+ /**
+ * Specifies the maximum absolute detour time compared to the shortest path
+ * from pickup to delivery. If specified, it must be nonnegative, and the
+ * shipment must contain at least a pickup and a delivery.
+ * For example, let t be the shortest time taken to go from the selected
+ * pickup alternative directly to the selected delivery alternative. Then
+ * setting `pickup_to_delivery_absolute_detour_limit` enforces:
+ * ```
+ * start_time(delivery) - start_time(pickup) <=
+ * t + pickup_to_delivery_absolute_detour_limit
+ * ```
+ * If both relative and absolute limits are specified on the same shipment,
+ * the more constraining limit is used for each possible pickup/delivery pair.
+ * As of 2017/10, detours are only supported when travel durations do not
+ * depend on vehicles.
+ *
+ * Generated from protobuf field .google.protobuf.Duration pickup_to_delivery_absolute_detour_limit = 9;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setPickupToDeliveryAbsoluteDetourLimit($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->pickup_to_delivery_absolute_detour_limit = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies the maximum duration from start of pickup to start of delivery of
+ * a shipment. If specified, it must be nonnegative, and the shipment must
+ * contain at least a pickup and a delivery. This does not depend on which
+ * alternatives are selected for pickup and delivery, nor on vehicle speed.
+ * This can be specified alongside maximum detour constraints: the solution
+ * will respect both specifications.
+ *
+ * Generated from protobuf field .google.protobuf.Duration pickup_to_delivery_time_limit = 10;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getPickupToDeliveryTimeLimit()
+ {
+ return $this->pickup_to_delivery_time_limit;
+ }
+
+ public function hasPickupToDeliveryTimeLimit()
+ {
+ return isset($this->pickup_to_delivery_time_limit);
+ }
+
+ public function clearPickupToDeliveryTimeLimit()
+ {
+ unset($this->pickup_to_delivery_time_limit);
+ }
+
+ /**
+ * Specifies the maximum duration from start of pickup to start of delivery of
+ * a shipment. If specified, it must be nonnegative, and the shipment must
+ * contain at least a pickup and a delivery. This does not depend on which
+ * alternatives are selected for pickup and delivery, nor on vehicle speed.
+ * This can be specified alongside maximum detour constraints: the solution
+ * will respect both specifications.
+ *
+ * Generated from protobuf field .google.protobuf.Duration pickup_to_delivery_time_limit = 10;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setPickupToDeliveryTimeLimit($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->pickup_to_delivery_time_limit = $var;
+
+ return $this;
+ }
+
+ /**
+ * Non-empty string specifying a "type" for this shipment.
+ * This feature can be used to define incompatibilities or requirements
+ * between `shipment_types` (see `shipment_type_incompatibilities` and
+ * `shipment_type_requirements` in `ShipmentModel`).
+ * Differs from `visit_types` which is specified for a single visit: All
+ * pickup/deliveries belonging to the same shipment share the same
+ * `shipment_type`.
+ *
+ * Generated from protobuf field string shipment_type = 11;
+ * @return string
+ */
+ public function getShipmentType()
+ {
+ return $this->shipment_type;
+ }
+
+ /**
+ * Non-empty string specifying a "type" for this shipment.
+ * This feature can be used to define incompatibilities or requirements
+ * between `shipment_types` (see `shipment_type_incompatibilities` and
+ * `shipment_type_requirements` in `ShipmentModel`).
+ * Differs from `visit_types` which is specified for a single visit: All
+ * pickup/deliveries belonging to the same shipment share the same
+ * `shipment_type`.
+ *
+ * Generated from protobuf field string shipment_type = 11;
+ * @param string $var
+ * @return $this
+ */
+ public function setShipmentType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->shipment_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies a label for this shipment. This label is reported in the response
+ * in the `shipment_label` of the corresponding
+ * [ShipmentRoute.Visit][google.maps.routeoptimization.v1.ShipmentRoute.Visit].
+ *
+ * Generated from protobuf field string label = 12;
+ * @return string
+ */
+ public function getLabel()
+ {
+ return $this->label;
+ }
+
+ /**
+ * Specifies a label for this shipment. This label is reported in the response
+ * in the `shipment_label` of the corresponding
+ * [ShipmentRoute.Visit][google.maps.routeoptimization.v1.ShipmentRoute.Visit].
+ *
+ * Generated from protobuf field string label = 12;
+ * @param string $var
+ * @return $this
+ */
+ public function setLabel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->label = $var;
+
+ return $this;
+ }
+
+ /**
+ * If true, skip this shipment, but don't apply a `penalty_cost`.
+ * Ignoring a shipment results in a validation error when there are any
+ * `shipment_type_requirements` in the model.
+ * Ignoring a shipment that is performed in `injected_first_solution_routes`
+ * or `injected_solution_constraint` is permitted; the solver removes the
+ * related pickup/delivery visits from the performing route.
+ * `precedence_rules` that reference ignored shipments will also be ignored.
+ *
+ * Generated from protobuf field bool ignore = 13;
+ * @return bool
+ */
+ public function getIgnore()
+ {
+ return $this->ignore;
+ }
+
+ /**
+ * If true, skip this shipment, but don't apply a `penalty_cost`.
+ * Ignoring a shipment results in a validation error when there are any
+ * `shipment_type_requirements` in the model.
+ * Ignoring a shipment that is performed in `injected_first_solution_routes`
+ * or `injected_solution_constraint` is permitted; the solver removes the
+ * related pickup/delivery visits from the performing route.
+ * `precedence_rules` that reference ignored shipments will also be ignored.
+ *
+ * Generated from protobuf field bool ignore = 13;
+ * @param bool $var
+ * @return $this
+ */
+ public function setIgnore($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->ignore = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Shipment/Load.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Shipment/Load.php
new file mode 100644
index 000000000000..dec1b28584e2
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Shipment/Load.php
@@ -0,0 +1,81 @@
+google.maps.routeoptimization.v1.Shipment.Load
+ */
+class Load extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The amount by which the load of the vehicle performing the corresponding
+ * visit will vary. Since it is an integer, users are advised to choose an
+ * appropriate unit to avoid loss of precision. Must be ≥ 0.
+ *
+ * Generated from protobuf field int64 amount = 2;
+ */
+ protected $amount = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $amount
+ * The amount by which the load of the vehicle performing the corresponding
+ * visit will vary. Since it is an integer, users are advised to choose an
+ * appropriate unit to avoid loss of precision. Must be ≥ 0.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The amount by which the load of the vehicle performing the corresponding
+ * visit will vary. Since it is an integer, users are advised to choose an
+ * appropriate unit to avoid loss of precision. Must be ≥ 0.
+ *
+ * Generated from protobuf field int64 amount = 2;
+ * @return int|string
+ */
+ public function getAmount()
+ {
+ return $this->amount;
+ }
+
+ /**
+ * The amount by which the load of the vehicle performing the corresponding
+ * visit will vary. Since it is an integer, users are advised to choose an
+ * appropriate unit to avoid loss of precision. Must be ≥ 0.
+ *
+ * Generated from protobuf field int64 amount = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setAmount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->amount = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Load::class, \Google\Maps\RouteOptimization\V1\Shipment_Load::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Shipment/VisitRequest.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Shipment/VisitRequest.php
new file mode 100644
index 000000000000..518eb8d4c60e
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Shipment/VisitRequest.php
@@ -0,0 +1,615 @@
+google.maps.routeoptimization.v1.Shipment.VisitRequest
+ */
+class VisitRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The geo-location where the vehicle arrives when performing this
+ * `VisitRequest`. If the shipment model has duration distance matrices,
+ * `arrival_location` must not be specified.
+ *
+ * Generated from protobuf field .google.type.LatLng arrival_location = 1;
+ */
+ protected $arrival_location = null;
+ /**
+ * The waypoint where the vehicle arrives when performing this
+ * `VisitRequest`. If the shipment model has duration distance matrices,
+ * `arrival_waypoint` must not be specified.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Waypoint arrival_waypoint = 2;
+ */
+ protected $arrival_waypoint = null;
+ /**
+ * The geo-location where the vehicle departs after completing this
+ * `VisitRequest`. Can be omitted if it is the same as `arrival_location`.
+ * If the shipment model has duration distance matrices,
+ * `departure_location` must not be specified.
+ *
+ * Generated from protobuf field .google.type.LatLng departure_location = 3;
+ */
+ protected $departure_location = null;
+ /**
+ * The waypoint where the vehicle departs after completing this
+ * `VisitRequest`. Can be omitted if it is the same as `arrival_waypoint`.
+ * If the shipment model has duration distance matrices,
+ * `departure_waypoint` must not be specified.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Waypoint departure_waypoint = 4;
+ */
+ protected $departure_waypoint = null;
+ /**
+ * Specifies tags attached to the visit request.
+ * Empty or duplicate strings are not allowed.
+ *
+ * Generated from protobuf field repeated string tags = 5;
+ */
+ private $tags;
+ /**
+ * Time windows which constrain the arrival time at a visit.
+ * Note that a vehicle may depart outside of the arrival time window, i.e.
+ * arrival time + duration do not need to be inside a time window. This can
+ * result in waiting time if the vehicle arrives before
+ * [TimeWindow.start_time][google.maps.routeoptimization.v1.TimeWindow.start_time].
+ * The absence of `TimeWindow` means that the vehicle can perform this visit
+ * at any time.
+ * Time windows must be disjoint, i.e. no time window must overlap with or
+ * be adjacent to another, and they must be in increasing order.
+ * `cost_per_hour_after_soft_end_time` and `soft_end_time` can only
+ * be set if there is a single time window.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.TimeWindow time_windows = 6;
+ */
+ private $time_windows;
+ /**
+ * Duration of the visit, i.e. time spent by the vehicle between arrival
+ * and departure (to be added to the possible waiting time; see
+ * `time_windows`).
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 7;
+ */
+ protected $duration = null;
+ /**
+ * Cost to service this visit request on a vehicle route. This can be used
+ * to pay different costs for each alternative pickup or delivery of a
+ * shipment. This cost must be in the same unit as `Shipment.penalty_cost`
+ * and must not be negative.
+ *
+ * Generated from protobuf field double cost = 8;
+ */
+ protected $cost = 0.0;
+ /**
+ * Load demands of this visit request. This is just like
+ * [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands]
+ * field, except that it only applies to this
+ * [VisitRequest][google.maps.routeoptimization.v1.Shipment.VisitRequest]
+ * instead of the whole
+ * [Shipment][google.maps.routeoptimization.v1.Shipment]. The demands listed
+ * here are added to the demands listed in
+ * [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands].
+ *
+ * Generated from protobuf field map load_demands = 12;
+ */
+ private $load_demands;
+ /**
+ * Specifies the types of the visit. This may be used to allocate additional
+ * time required for a vehicle to complete this visit (see
+ * [Vehicle.extra_visit_duration_for_visit_type][google.maps.routeoptimization.v1.Vehicle.extra_visit_duration_for_visit_type]).
+ * A type can only appear once.
+ *
+ * Generated from protobuf field repeated string visit_types = 10;
+ */
+ private $visit_types;
+ /**
+ * Specifies a label for this `VisitRequest`. This label is reported in the
+ * response as `visit_label` in the corresponding
+ * [ShipmentRoute.Visit][google.maps.routeoptimization.v1.ShipmentRoute.Visit].
+ *
+ * Generated from protobuf field string label = 11;
+ */
+ protected $label = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Type\LatLng $arrival_location
+ * The geo-location where the vehicle arrives when performing this
+ * `VisitRequest`. If the shipment model has duration distance matrices,
+ * `arrival_location` must not be specified.
+ * @type \Google\Maps\RouteOptimization\V1\Waypoint $arrival_waypoint
+ * The waypoint where the vehicle arrives when performing this
+ * `VisitRequest`. If the shipment model has duration distance matrices,
+ * `arrival_waypoint` must not be specified.
+ * @type \Google\Type\LatLng $departure_location
+ * The geo-location where the vehicle departs after completing this
+ * `VisitRequest`. Can be omitted if it is the same as `arrival_location`.
+ * If the shipment model has duration distance matrices,
+ * `departure_location` must not be specified.
+ * @type \Google\Maps\RouteOptimization\V1\Waypoint $departure_waypoint
+ * The waypoint where the vehicle departs after completing this
+ * `VisitRequest`. Can be omitted if it is the same as `arrival_waypoint`.
+ * If the shipment model has duration distance matrices,
+ * `departure_waypoint` must not be specified.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $tags
+ * Specifies tags attached to the visit request.
+ * Empty or duplicate strings are not allowed.
+ * @type array<\Google\Maps\RouteOptimization\V1\TimeWindow>|\Google\Protobuf\Internal\RepeatedField $time_windows
+ * Time windows which constrain the arrival time at a visit.
+ * Note that a vehicle may depart outside of the arrival time window, i.e.
+ * arrival time + duration do not need to be inside a time window. This can
+ * result in waiting time if the vehicle arrives before
+ * [TimeWindow.start_time][google.maps.routeoptimization.v1.TimeWindow.start_time].
+ * The absence of `TimeWindow` means that the vehicle can perform this visit
+ * at any time.
+ * Time windows must be disjoint, i.e. no time window must overlap with or
+ * be adjacent to another, and they must be in increasing order.
+ * `cost_per_hour_after_soft_end_time` and `soft_end_time` can only
+ * be set if there is a single time window.
+ * @type \Google\Protobuf\Duration $duration
+ * Duration of the visit, i.e. time spent by the vehicle between arrival
+ * and departure (to be added to the possible waiting time; see
+ * `time_windows`).
+ * @type float $cost
+ * Cost to service this visit request on a vehicle route. This can be used
+ * to pay different costs for each alternative pickup or delivery of a
+ * shipment. This cost must be in the same unit as `Shipment.penalty_cost`
+ * and must not be negative.
+ * @type array|\Google\Protobuf\Internal\MapField $load_demands
+ * Load demands of this visit request. This is just like
+ * [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands]
+ * field, except that it only applies to this
+ * [VisitRequest][google.maps.routeoptimization.v1.Shipment.VisitRequest]
+ * instead of the whole
+ * [Shipment][google.maps.routeoptimization.v1.Shipment]. The demands listed
+ * here are added to the demands listed in
+ * [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands].
+ * @type array|\Google\Protobuf\Internal\RepeatedField $visit_types
+ * Specifies the types of the visit. This may be used to allocate additional
+ * time required for a vehicle to complete this visit (see
+ * [Vehicle.extra_visit_duration_for_visit_type][google.maps.routeoptimization.v1.Vehicle.extra_visit_duration_for_visit_type]).
+ * A type can only appear once.
+ * @type string $label
+ * Specifies a label for this `VisitRequest`. This label is reported in the
+ * response as `visit_label` in the corresponding
+ * [ShipmentRoute.Visit][google.maps.routeoptimization.v1.ShipmentRoute.Visit].
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The geo-location where the vehicle arrives when performing this
+ * `VisitRequest`. If the shipment model has duration distance matrices,
+ * `arrival_location` must not be specified.
+ *
+ * Generated from protobuf field .google.type.LatLng arrival_location = 1;
+ * @return \Google\Type\LatLng|null
+ */
+ public function getArrivalLocation()
+ {
+ return $this->arrival_location;
+ }
+
+ public function hasArrivalLocation()
+ {
+ return isset($this->arrival_location);
+ }
+
+ public function clearArrivalLocation()
+ {
+ unset($this->arrival_location);
+ }
+
+ /**
+ * The geo-location where the vehicle arrives when performing this
+ * `VisitRequest`. If the shipment model has duration distance matrices,
+ * `arrival_location` must not be specified.
+ *
+ * Generated from protobuf field .google.type.LatLng arrival_location = 1;
+ * @param \Google\Type\LatLng $var
+ * @return $this
+ */
+ public function setArrivalLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\LatLng::class);
+ $this->arrival_location = $var;
+
+ return $this;
+ }
+
+ /**
+ * The waypoint where the vehicle arrives when performing this
+ * `VisitRequest`. If the shipment model has duration distance matrices,
+ * `arrival_waypoint` must not be specified.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Waypoint arrival_waypoint = 2;
+ * @return \Google\Maps\RouteOptimization\V1\Waypoint|null
+ */
+ public function getArrivalWaypoint()
+ {
+ return $this->arrival_waypoint;
+ }
+
+ public function hasArrivalWaypoint()
+ {
+ return isset($this->arrival_waypoint);
+ }
+
+ public function clearArrivalWaypoint()
+ {
+ unset($this->arrival_waypoint);
+ }
+
+ /**
+ * The waypoint where the vehicle arrives when performing this
+ * `VisitRequest`. If the shipment model has duration distance matrices,
+ * `arrival_waypoint` must not be specified.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Waypoint arrival_waypoint = 2;
+ * @param \Google\Maps\RouteOptimization\V1\Waypoint $var
+ * @return $this
+ */
+ public function setArrivalWaypoint($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\Waypoint::class);
+ $this->arrival_waypoint = $var;
+
+ return $this;
+ }
+
+ /**
+ * The geo-location where the vehicle departs after completing this
+ * `VisitRequest`. Can be omitted if it is the same as `arrival_location`.
+ * If the shipment model has duration distance matrices,
+ * `departure_location` must not be specified.
+ *
+ * Generated from protobuf field .google.type.LatLng departure_location = 3;
+ * @return \Google\Type\LatLng|null
+ */
+ public function getDepartureLocation()
+ {
+ return $this->departure_location;
+ }
+
+ public function hasDepartureLocation()
+ {
+ return isset($this->departure_location);
+ }
+
+ public function clearDepartureLocation()
+ {
+ unset($this->departure_location);
+ }
+
+ /**
+ * The geo-location where the vehicle departs after completing this
+ * `VisitRequest`. Can be omitted if it is the same as `arrival_location`.
+ * If the shipment model has duration distance matrices,
+ * `departure_location` must not be specified.
+ *
+ * Generated from protobuf field .google.type.LatLng departure_location = 3;
+ * @param \Google\Type\LatLng $var
+ * @return $this
+ */
+ public function setDepartureLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\LatLng::class);
+ $this->departure_location = $var;
+
+ return $this;
+ }
+
+ /**
+ * The waypoint where the vehicle departs after completing this
+ * `VisitRequest`. Can be omitted if it is the same as `arrival_waypoint`.
+ * If the shipment model has duration distance matrices,
+ * `departure_waypoint` must not be specified.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Waypoint departure_waypoint = 4;
+ * @return \Google\Maps\RouteOptimization\V1\Waypoint|null
+ */
+ public function getDepartureWaypoint()
+ {
+ return $this->departure_waypoint;
+ }
+
+ public function hasDepartureWaypoint()
+ {
+ return isset($this->departure_waypoint);
+ }
+
+ public function clearDepartureWaypoint()
+ {
+ unset($this->departure_waypoint);
+ }
+
+ /**
+ * The waypoint where the vehicle departs after completing this
+ * `VisitRequest`. Can be omitted if it is the same as `arrival_waypoint`.
+ * If the shipment model has duration distance matrices,
+ * `departure_waypoint` must not be specified.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Waypoint departure_waypoint = 4;
+ * @param \Google\Maps\RouteOptimization\V1\Waypoint $var
+ * @return $this
+ */
+ public function setDepartureWaypoint($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\Waypoint::class);
+ $this->departure_waypoint = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies tags attached to the visit request.
+ * Empty or duplicate strings are not allowed.
+ *
+ * Generated from protobuf field repeated string tags = 5;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTags()
+ {
+ return $this->tags;
+ }
+
+ /**
+ * Specifies tags attached to the visit request.
+ * Empty or duplicate strings are not allowed.
+ *
+ * Generated from protobuf field repeated string tags = 5;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->tags = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Time windows which constrain the arrival time at a visit.
+ * Note that a vehicle may depart outside of the arrival time window, i.e.
+ * arrival time + duration do not need to be inside a time window. This can
+ * result in waiting time if the vehicle arrives before
+ * [TimeWindow.start_time][google.maps.routeoptimization.v1.TimeWindow.start_time].
+ * The absence of `TimeWindow` means that the vehicle can perform this visit
+ * at any time.
+ * Time windows must be disjoint, i.e. no time window must overlap with or
+ * be adjacent to another, and they must be in increasing order.
+ * `cost_per_hour_after_soft_end_time` and `soft_end_time` can only
+ * be set if there is a single time window.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.TimeWindow time_windows = 6;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTimeWindows()
+ {
+ return $this->time_windows;
+ }
+
+ /**
+ * Time windows which constrain the arrival time at a visit.
+ * Note that a vehicle may depart outside of the arrival time window, i.e.
+ * arrival time + duration do not need to be inside a time window. This can
+ * result in waiting time if the vehicle arrives before
+ * [TimeWindow.start_time][google.maps.routeoptimization.v1.TimeWindow.start_time].
+ * The absence of `TimeWindow` means that the vehicle can perform this visit
+ * at any time.
+ * Time windows must be disjoint, i.e. no time window must overlap with or
+ * be adjacent to another, and they must be in increasing order.
+ * `cost_per_hour_after_soft_end_time` and `soft_end_time` can only
+ * be set if there is a single time window.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.TimeWindow time_windows = 6;
+ * @param array<\Google\Maps\RouteOptimization\V1\TimeWindow>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTimeWindows($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\TimeWindow::class);
+ $this->time_windows = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Duration of the visit, i.e. time spent by the vehicle between arrival
+ * and departure (to be added to the possible waiting time; see
+ * `time_windows`).
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 7;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getDuration()
+ {
+ return $this->duration;
+ }
+
+ public function hasDuration()
+ {
+ return isset($this->duration);
+ }
+
+ public function clearDuration()
+ {
+ unset($this->duration);
+ }
+
+ /**
+ * Duration of the visit, i.e. time spent by the vehicle between arrival
+ * and departure (to be added to the possible waiting time; see
+ * `time_windows`).
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 7;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Cost to service this visit request on a vehicle route. This can be used
+ * to pay different costs for each alternative pickup or delivery of a
+ * shipment. This cost must be in the same unit as `Shipment.penalty_cost`
+ * and must not be negative.
+ *
+ * Generated from protobuf field double cost = 8;
+ * @return float
+ */
+ public function getCost()
+ {
+ return $this->cost;
+ }
+
+ /**
+ * Cost to service this visit request on a vehicle route. This can be used
+ * to pay different costs for each alternative pickup or delivery of a
+ * shipment. This cost must be in the same unit as `Shipment.penalty_cost`
+ * and must not be negative.
+ *
+ * Generated from protobuf field double cost = 8;
+ * @param float $var
+ * @return $this
+ */
+ public function setCost($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->cost = $var;
+
+ return $this;
+ }
+
+ /**
+ * Load demands of this visit request. This is just like
+ * [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands]
+ * field, except that it only applies to this
+ * [VisitRequest][google.maps.routeoptimization.v1.Shipment.VisitRequest]
+ * instead of the whole
+ * [Shipment][google.maps.routeoptimization.v1.Shipment]. The demands listed
+ * here are added to the demands listed in
+ * [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands].
+ *
+ * Generated from protobuf field map load_demands = 12;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLoadDemands()
+ {
+ return $this->load_demands;
+ }
+
+ /**
+ * Load demands of this visit request. This is just like
+ * [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands]
+ * field, except that it only applies to this
+ * [VisitRequest][google.maps.routeoptimization.v1.Shipment.VisitRequest]
+ * instead of the whole
+ * [Shipment][google.maps.routeoptimization.v1.Shipment]. The demands listed
+ * here are added to the demands listed in
+ * [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands].
+ *
+ * Generated from protobuf field map load_demands = 12;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLoadDemands($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\Shipment\Load::class);
+ $this->load_demands = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Specifies the types of the visit. This may be used to allocate additional
+ * time required for a vehicle to complete this visit (see
+ * [Vehicle.extra_visit_duration_for_visit_type][google.maps.routeoptimization.v1.Vehicle.extra_visit_duration_for_visit_type]).
+ * A type can only appear once.
+ *
+ * Generated from protobuf field repeated string visit_types = 10;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getVisitTypes()
+ {
+ return $this->visit_types;
+ }
+
+ /**
+ * Specifies the types of the visit. This may be used to allocate additional
+ * time required for a vehicle to complete this visit (see
+ * [Vehicle.extra_visit_duration_for_visit_type][google.maps.routeoptimization.v1.Vehicle.extra_visit_duration_for_visit_type]).
+ * A type can only appear once.
+ *
+ * Generated from protobuf field repeated string visit_types = 10;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setVisitTypes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->visit_types = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Specifies a label for this `VisitRequest`. This label is reported in the
+ * response as `visit_label` in the corresponding
+ * [ShipmentRoute.Visit][google.maps.routeoptimization.v1.ShipmentRoute.Visit].
+ *
+ * Generated from protobuf field string label = 11;
+ * @return string
+ */
+ public function getLabel()
+ {
+ return $this->label;
+ }
+
+ /**
+ * Specifies a label for this `VisitRequest`. This label is reported in the
+ * response as `visit_label` in the corresponding
+ * [ShipmentRoute.Visit][google.maps.routeoptimization.v1.ShipmentRoute.Visit].
+ *
+ * Generated from protobuf field string label = 11;
+ * @param string $var
+ * @return $this
+ */
+ public function setLabel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->label = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(VisitRequest::class, \Google\Maps\RouteOptimization\V1\Shipment_VisitRequest::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentModel.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentModel.php
new file mode 100644
index 000000000000..34ac5c5b5eb4
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentModel.php
@@ -0,0 +1,1010 @@
+google.maps.routeoptimization.v1.ShipmentModel
+ */
+class ShipmentModel extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Set of shipments which must be performed in the model.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.Shipment shipments = 1;
+ */
+ private $shipments;
+ /**
+ * Set of vehicles which can be used to perform visits.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.Vehicle vehicles = 2;
+ */
+ private $vehicles;
+ /**
+ * Constrains the maximum number of active vehicles. A vehicle is active if
+ * its route performs at least one shipment. This can be used to limit the
+ * number of routes in the case where there are fewer drivers than
+ * vehicles and that the fleet of vehicles is heterogeneous. The optimization
+ * will then select the best subset of vehicles to use.
+ * Must be strictly positive.
+ *
+ * Generated from protobuf field optional int32 max_active_vehicles = 4;
+ */
+ protected $max_active_vehicles = null;
+ /**
+ * Global start and end time of the model: no times outside of this range
+ * can be considered valid.
+ * The model's time span must be less than a year, i.e. the `global_end_time`
+ * and the `global_start_time` must be within 31536000 seconds of each other.
+ * When using `cost_per_*hour` fields, you might want to set this window to a
+ * smaller interval to increase performance (eg. if you model a single day,
+ * you should set the global time limits to that day).
+ * If unset, 00:00:00 UTC, January 1, 1970 (i.e. seconds: 0, nanos: 0) is used
+ * as default.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp global_start_time = 5;
+ */
+ protected $global_start_time = null;
+ /**
+ * If unset, 00:00:00 UTC, January 1, 1971 (i.e. seconds: 31536000, nanos: 0)
+ * is used as default.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp global_end_time = 6;
+ */
+ protected $global_end_time = null;
+ /**
+ * The "global duration" of the overall plan is the difference between the
+ * earliest effective start time and the latest effective end time of
+ * all vehicles. Users can assign a cost per hour to that quantity to try
+ * and optimize for earliest job completion, for example. This cost must be in
+ * the same unit as
+ * [Shipment.penalty_cost][google.maps.routeoptimization.v1.Shipment.penalty_cost].
+ *
+ * Generated from protobuf field double global_duration_cost_per_hour = 7;
+ */
+ protected $global_duration_cost_per_hour = 0.0;
+ /**
+ * Specifies duration and distance matrices used in the model. If this field
+ * is empty, Google Maps or geodesic distances will be used instead, depending
+ * on the value of the `use_geodesic_distances` field. If it is not empty,
+ * `use_geodesic_distances` cannot be true and neither
+ * `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
+ * can be empty.
+ * Usage examples:
+ * * There are two locations: locA and locB.
+ * * 1 vehicle starting its route at locA and ending it at locA.
+ * * 1 pickup visit request at locB.
+ * ```
+ * model {
+ * vehicles { start_tags: "locA" end_tags: "locA" }
+ * shipments { pickups { tags: "locB" } }
+ * duration_distance_matrix_src_tags: "locA"
+ * duration_distance_matrix_src_tags: "locB"
+ * duration_distance_matrix_dst_tags: "locA"
+ * duration_distance_matrix_dst_tags: "locB"
+ * duration_distance_matrices {
+ * rows { # from: locA
+ * durations { seconds: 0 } meters: 0 # to: locA
+ * durations { seconds: 100 } meters: 1000 # to: locB
+ * }
+ * rows { # from: locB
+ * durations { seconds: 102 } meters: 990 # to: locA
+ * durations { seconds: 0 } meters: 0 # to: locB
+ * }
+ * }
+ * }
+ * ```
+ * * There are three locations: locA, locB and locC.
+ * * 1 vehicle starting its route at locA and ending it at locB, using
+ * matrix "fast".
+ * * 1 vehicle starting its route at locB and ending it at locB, using
+ * matrix "slow".
+ * * 1 vehicle starting its route at locB and ending it at locB, using
+ * matrix "fast".
+ * * 1 pickup visit request at locC.
+ * ```
+ * model {
+ * vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
+ * vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
+ * vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
+ * shipments { pickups { tags: "locC" } }
+ * duration_distance_matrix_src_tags: "locA"
+ * duration_distance_matrix_src_tags: "locB"
+ * duration_distance_matrix_src_tags: "locC"
+ * duration_distance_matrix_dst_tags: "locB"
+ * duration_distance_matrix_dst_tags: "locC"
+ * duration_distance_matrices {
+ * vehicle_start_tag: "fast"
+ * rows { # from: locA
+ * durations { seconds: 1000 } meters: 2000 # to: locB
+ * durations { seconds: 600 } meters: 1000 # to: locC
+ * }
+ * rows { # from: locB
+ * durations { seconds: 0 } meters: 0 # to: locB
+ * durations { seconds: 700 } meters: 1200 # to: locC
+ * }
+ * rows { # from: locC
+ * durations { seconds: 702 } meters: 1190 # to: locB
+ * durations { seconds: 0 } meters: 0 # to: locC
+ * }
+ * }
+ * duration_distance_matrices {
+ * vehicle_start_tag: "slow"
+ * rows { # from: locA
+ * durations { seconds: 1800 } meters: 2001 # to: locB
+ * durations { seconds: 900 } meters: 1002 # to: locC
+ * }
+ * rows { # from: locB
+ * durations { seconds: 0 } meters: 0 # to: locB
+ * durations { seconds: 1000 } meters: 1202 # to: locC
+ * }
+ * rows { # from: locC
+ * durations { seconds: 1001 } meters: 1195 # to: locB
+ * durations { seconds: 0 } meters: 0 # to: locC
+ * }
+ * }
+ * }
+ * ```
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
+ */
+ private $duration_distance_matrices;
+ /**
+ * Tags defining the sources of the duration and distance matrices;
+ * `duration_distance_matrices(i).rows(j)` defines durations and distances
+ * from visits with tag `duration_distance_matrix_src_tags(j)` to other visits
+ * in matrix i.
+ * Tags correspond to
+ * [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags]
+ * or
+ * [Vehicle.start_tags][google.maps.routeoptimization.v1.Vehicle.start_tags].
+ * A given `VisitRequest` or `Vehicle` must match exactly one tag in this
+ * field. Note that a `Vehicle`'s source, destination and matrix tags may be
+ * the same; similarly a `VisitRequest`'s source and destination tags may be
+ * the same. All tags must be different and cannot be empty strings. If this
+ * field is not empty, then `duration_distance_matrices` must not be empty.
+ *
+ * Generated from protobuf field repeated string duration_distance_matrix_src_tags = 9;
+ */
+ private $duration_distance_matrix_src_tags;
+ /**
+ * Tags defining the destinations of the duration and distance matrices;
+ * `duration_distance_matrices(i).rows(j).durations(k)` (resp.
+ * `duration_distance_matrices(i).rows(j).meters(k))` defines the duration
+ * (resp. the distance) of the travel from visits with tag
+ * `duration_distance_matrix_src_tags(j)` to visits with tag
+ * `duration_distance_matrix_dst_tags(k)` in matrix i.
+ * Tags correspond to
+ * [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags]
+ * or
+ * [Vehicle.start_tags][google.maps.routeoptimization.v1.Vehicle.start_tags].
+ * A given `VisitRequest` or `Vehicle` must match exactly one tag in this
+ * field. Note that a `Vehicle`'s source, destination and matrix tags may be
+ * the same; similarly a `VisitRequest`'s source and destination tags may be
+ * the same. All tags must be different and cannot be empty strings. If this
+ * field is not empty, then `duration_distance_matrices` must not be empty.
+ *
+ * Generated from protobuf field repeated string duration_distance_matrix_dst_tags = 10;
+ */
+ private $duration_distance_matrix_dst_tags;
+ /**
+ * Transition attributes added to the model.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.TransitionAttributes transition_attributes = 11;
+ */
+ private $transition_attributes;
+ /**
+ * Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
+ */
+ private $shipment_type_incompatibilities;
+ /**
+ * Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
+ */
+ private $shipment_type_requirements;
+ /**
+ * Set of precedence rules which must be enforced in the model.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
+ */
+ private $precedence_rules;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Maps\RouteOptimization\V1\Shipment>|\Google\Protobuf\Internal\RepeatedField $shipments
+ * Set of shipments which must be performed in the model.
+ * @type array<\Google\Maps\RouteOptimization\V1\Vehicle>|\Google\Protobuf\Internal\RepeatedField $vehicles
+ * Set of vehicles which can be used to perform visits.
+ * @type int $max_active_vehicles
+ * Constrains the maximum number of active vehicles. A vehicle is active if
+ * its route performs at least one shipment. This can be used to limit the
+ * number of routes in the case where there are fewer drivers than
+ * vehicles and that the fleet of vehicles is heterogeneous. The optimization
+ * will then select the best subset of vehicles to use.
+ * Must be strictly positive.
+ * @type \Google\Protobuf\Timestamp $global_start_time
+ * Global start and end time of the model: no times outside of this range
+ * can be considered valid.
+ * The model's time span must be less than a year, i.e. the `global_end_time`
+ * and the `global_start_time` must be within 31536000 seconds of each other.
+ * When using `cost_per_*hour` fields, you might want to set this window to a
+ * smaller interval to increase performance (eg. if you model a single day,
+ * you should set the global time limits to that day).
+ * If unset, 00:00:00 UTC, January 1, 1970 (i.e. seconds: 0, nanos: 0) is used
+ * as default.
+ * @type \Google\Protobuf\Timestamp $global_end_time
+ * If unset, 00:00:00 UTC, January 1, 1971 (i.e. seconds: 31536000, nanos: 0)
+ * is used as default.
+ * @type float $global_duration_cost_per_hour
+ * The "global duration" of the overall plan is the difference between the
+ * earliest effective start time and the latest effective end time of
+ * all vehicles. Users can assign a cost per hour to that quantity to try
+ * and optimize for earliest job completion, for example. This cost must be in
+ * the same unit as
+ * [Shipment.penalty_cost][google.maps.routeoptimization.v1.Shipment.penalty_cost].
+ * @type array<\Google\Maps\RouteOptimization\V1\ShipmentModel\DurationDistanceMatrix>|\Google\Protobuf\Internal\RepeatedField $duration_distance_matrices
+ * Specifies duration and distance matrices used in the model. If this field
+ * is empty, Google Maps or geodesic distances will be used instead, depending
+ * on the value of the `use_geodesic_distances` field. If it is not empty,
+ * `use_geodesic_distances` cannot be true and neither
+ * `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
+ * can be empty.
+ * Usage examples:
+ * * There are two locations: locA and locB.
+ * * 1 vehicle starting its route at locA and ending it at locA.
+ * * 1 pickup visit request at locB.
+ * ```
+ * model {
+ * vehicles { start_tags: "locA" end_tags: "locA" }
+ * shipments { pickups { tags: "locB" } }
+ * duration_distance_matrix_src_tags: "locA"
+ * duration_distance_matrix_src_tags: "locB"
+ * duration_distance_matrix_dst_tags: "locA"
+ * duration_distance_matrix_dst_tags: "locB"
+ * duration_distance_matrices {
+ * rows { # from: locA
+ * durations { seconds: 0 } meters: 0 # to: locA
+ * durations { seconds: 100 } meters: 1000 # to: locB
+ * }
+ * rows { # from: locB
+ * durations { seconds: 102 } meters: 990 # to: locA
+ * durations { seconds: 0 } meters: 0 # to: locB
+ * }
+ * }
+ * }
+ * ```
+ * * There are three locations: locA, locB and locC.
+ * * 1 vehicle starting its route at locA and ending it at locB, using
+ * matrix "fast".
+ * * 1 vehicle starting its route at locB and ending it at locB, using
+ * matrix "slow".
+ * * 1 vehicle starting its route at locB and ending it at locB, using
+ * matrix "fast".
+ * * 1 pickup visit request at locC.
+ * ```
+ * model {
+ * vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
+ * vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
+ * vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
+ * shipments { pickups { tags: "locC" } }
+ * duration_distance_matrix_src_tags: "locA"
+ * duration_distance_matrix_src_tags: "locB"
+ * duration_distance_matrix_src_tags: "locC"
+ * duration_distance_matrix_dst_tags: "locB"
+ * duration_distance_matrix_dst_tags: "locC"
+ * duration_distance_matrices {
+ * vehicle_start_tag: "fast"
+ * rows { # from: locA
+ * durations { seconds: 1000 } meters: 2000 # to: locB
+ * durations { seconds: 600 } meters: 1000 # to: locC
+ * }
+ * rows { # from: locB
+ * durations { seconds: 0 } meters: 0 # to: locB
+ * durations { seconds: 700 } meters: 1200 # to: locC
+ * }
+ * rows { # from: locC
+ * durations { seconds: 702 } meters: 1190 # to: locB
+ * durations { seconds: 0 } meters: 0 # to: locC
+ * }
+ * }
+ * duration_distance_matrices {
+ * vehicle_start_tag: "slow"
+ * rows { # from: locA
+ * durations { seconds: 1800 } meters: 2001 # to: locB
+ * durations { seconds: 900 } meters: 1002 # to: locC
+ * }
+ * rows { # from: locB
+ * durations { seconds: 0 } meters: 0 # to: locB
+ * durations { seconds: 1000 } meters: 1202 # to: locC
+ * }
+ * rows { # from: locC
+ * durations { seconds: 1001 } meters: 1195 # to: locB
+ * durations { seconds: 0 } meters: 0 # to: locC
+ * }
+ * }
+ * }
+ * ```
+ * @type array|\Google\Protobuf\Internal\RepeatedField $duration_distance_matrix_src_tags
+ * Tags defining the sources of the duration and distance matrices;
+ * `duration_distance_matrices(i).rows(j)` defines durations and distances
+ * from visits with tag `duration_distance_matrix_src_tags(j)` to other visits
+ * in matrix i.
+ * Tags correspond to
+ * [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags]
+ * or
+ * [Vehicle.start_tags][google.maps.routeoptimization.v1.Vehicle.start_tags].
+ * A given `VisitRequest` or `Vehicle` must match exactly one tag in this
+ * field. Note that a `Vehicle`'s source, destination and matrix tags may be
+ * the same; similarly a `VisitRequest`'s source and destination tags may be
+ * the same. All tags must be different and cannot be empty strings. If this
+ * field is not empty, then `duration_distance_matrices` must not be empty.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $duration_distance_matrix_dst_tags
+ * Tags defining the destinations of the duration and distance matrices;
+ * `duration_distance_matrices(i).rows(j).durations(k)` (resp.
+ * `duration_distance_matrices(i).rows(j).meters(k))` defines the duration
+ * (resp. the distance) of the travel from visits with tag
+ * `duration_distance_matrix_src_tags(j)` to visits with tag
+ * `duration_distance_matrix_dst_tags(k)` in matrix i.
+ * Tags correspond to
+ * [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags]
+ * or
+ * [Vehicle.start_tags][google.maps.routeoptimization.v1.Vehicle.start_tags].
+ * A given `VisitRequest` or `Vehicle` must match exactly one tag in this
+ * field. Note that a `Vehicle`'s source, destination and matrix tags may be
+ * the same; similarly a `VisitRequest`'s source and destination tags may be
+ * the same. All tags must be different and cannot be empty strings. If this
+ * field is not empty, then `duration_distance_matrices` must not be empty.
+ * @type array<\Google\Maps\RouteOptimization\V1\TransitionAttributes>|\Google\Protobuf\Internal\RepeatedField $transition_attributes
+ * Transition attributes added to the model.
+ * @type array<\Google\Maps\RouteOptimization\V1\ShipmentTypeIncompatibility>|\Google\Protobuf\Internal\RepeatedField $shipment_type_incompatibilities
+ * Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
+ * @type array<\Google\Maps\RouteOptimization\V1\ShipmentTypeRequirement>|\Google\Protobuf\Internal\RepeatedField $shipment_type_requirements
+ * Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
+ * @type array<\Google\Maps\RouteOptimization\V1\ShipmentModel\PrecedenceRule>|\Google\Protobuf\Internal\RepeatedField $precedence_rules
+ * Set of precedence rules which must be enforced in the model.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Set of shipments which must be performed in the model.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.Shipment shipments = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getShipments()
+ {
+ return $this->shipments;
+ }
+
+ /**
+ * Set of shipments which must be performed in the model.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.Shipment shipments = 1;
+ * @param array<\Google\Maps\RouteOptimization\V1\Shipment>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setShipments($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\Shipment::class);
+ $this->shipments = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Set of vehicles which can be used to perform visits.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.Vehicle vehicles = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getVehicles()
+ {
+ return $this->vehicles;
+ }
+
+ /**
+ * Set of vehicles which can be used to perform visits.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.Vehicle vehicles = 2;
+ * @param array<\Google\Maps\RouteOptimization\V1\Vehicle>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setVehicles($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\Vehicle::class);
+ $this->vehicles = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Constrains the maximum number of active vehicles. A vehicle is active if
+ * its route performs at least one shipment. This can be used to limit the
+ * number of routes in the case where there are fewer drivers than
+ * vehicles and that the fleet of vehicles is heterogeneous. The optimization
+ * will then select the best subset of vehicles to use.
+ * Must be strictly positive.
+ *
+ * Generated from protobuf field optional int32 max_active_vehicles = 4;
+ * @return int
+ */
+ public function getMaxActiveVehicles()
+ {
+ return isset($this->max_active_vehicles) ? $this->max_active_vehicles : 0;
+ }
+
+ public function hasMaxActiveVehicles()
+ {
+ return isset($this->max_active_vehicles);
+ }
+
+ public function clearMaxActiveVehicles()
+ {
+ unset($this->max_active_vehicles);
+ }
+
+ /**
+ * Constrains the maximum number of active vehicles. A vehicle is active if
+ * its route performs at least one shipment. This can be used to limit the
+ * number of routes in the case where there are fewer drivers than
+ * vehicles and that the fleet of vehicles is heterogeneous. The optimization
+ * will then select the best subset of vehicles to use.
+ * Must be strictly positive.
+ *
+ * Generated from protobuf field optional int32 max_active_vehicles = 4;
+ * @param int $var
+ * @return $this
+ */
+ public function setMaxActiveVehicles($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->max_active_vehicles = $var;
+
+ return $this;
+ }
+
+ /**
+ * Global start and end time of the model: no times outside of this range
+ * can be considered valid.
+ * The model's time span must be less than a year, i.e. the `global_end_time`
+ * and the `global_start_time` must be within 31536000 seconds of each other.
+ * When using `cost_per_*hour` fields, you might want to set this window to a
+ * smaller interval to increase performance (eg. if you model a single day,
+ * you should set the global time limits to that day).
+ * If unset, 00:00:00 UTC, January 1, 1970 (i.e. seconds: 0, nanos: 0) is used
+ * as default.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp global_start_time = 5;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getGlobalStartTime()
+ {
+ return $this->global_start_time;
+ }
+
+ public function hasGlobalStartTime()
+ {
+ return isset($this->global_start_time);
+ }
+
+ public function clearGlobalStartTime()
+ {
+ unset($this->global_start_time);
+ }
+
+ /**
+ * Global start and end time of the model: no times outside of this range
+ * can be considered valid.
+ * The model's time span must be less than a year, i.e. the `global_end_time`
+ * and the `global_start_time` must be within 31536000 seconds of each other.
+ * When using `cost_per_*hour` fields, you might want to set this window to a
+ * smaller interval to increase performance (eg. if you model a single day,
+ * you should set the global time limits to that day).
+ * If unset, 00:00:00 UTC, January 1, 1970 (i.e. seconds: 0, nanos: 0) is used
+ * as default.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp global_start_time = 5;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setGlobalStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->global_start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * If unset, 00:00:00 UTC, January 1, 1971 (i.e. seconds: 31536000, nanos: 0)
+ * is used as default.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp global_end_time = 6;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getGlobalEndTime()
+ {
+ return $this->global_end_time;
+ }
+
+ public function hasGlobalEndTime()
+ {
+ return isset($this->global_end_time);
+ }
+
+ public function clearGlobalEndTime()
+ {
+ unset($this->global_end_time);
+ }
+
+ /**
+ * If unset, 00:00:00 UTC, January 1, 1971 (i.e. seconds: 31536000, nanos: 0)
+ * is used as default.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp global_end_time = 6;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setGlobalEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->global_end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The "global duration" of the overall plan is the difference between the
+ * earliest effective start time and the latest effective end time of
+ * all vehicles. Users can assign a cost per hour to that quantity to try
+ * and optimize for earliest job completion, for example. This cost must be in
+ * the same unit as
+ * [Shipment.penalty_cost][google.maps.routeoptimization.v1.Shipment.penalty_cost].
+ *
+ * Generated from protobuf field double global_duration_cost_per_hour = 7;
+ * @return float
+ */
+ public function getGlobalDurationCostPerHour()
+ {
+ return $this->global_duration_cost_per_hour;
+ }
+
+ /**
+ * The "global duration" of the overall plan is the difference between the
+ * earliest effective start time and the latest effective end time of
+ * all vehicles. Users can assign a cost per hour to that quantity to try
+ * and optimize for earliest job completion, for example. This cost must be in
+ * the same unit as
+ * [Shipment.penalty_cost][google.maps.routeoptimization.v1.Shipment.penalty_cost].
+ *
+ * Generated from protobuf field double global_duration_cost_per_hour = 7;
+ * @param float $var
+ * @return $this
+ */
+ public function setGlobalDurationCostPerHour($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->global_duration_cost_per_hour = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies duration and distance matrices used in the model. If this field
+ * is empty, Google Maps or geodesic distances will be used instead, depending
+ * on the value of the `use_geodesic_distances` field. If it is not empty,
+ * `use_geodesic_distances` cannot be true and neither
+ * `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
+ * can be empty.
+ * Usage examples:
+ * * There are two locations: locA and locB.
+ * * 1 vehicle starting its route at locA and ending it at locA.
+ * * 1 pickup visit request at locB.
+ * ```
+ * model {
+ * vehicles { start_tags: "locA" end_tags: "locA" }
+ * shipments { pickups { tags: "locB" } }
+ * duration_distance_matrix_src_tags: "locA"
+ * duration_distance_matrix_src_tags: "locB"
+ * duration_distance_matrix_dst_tags: "locA"
+ * duration_distance_matrix_dst_tags: "locB"
+ * duration_distance_matrices {
+ * rows { # from: locA
+ * durations { seconds: 0 } meters: 0 # to: locA
+ * durations { seconds: 100 } meters: 1000 # to: locB
+ * }
+ * rows { # from: locB
+ * durations { seconds: 102 } meters: 990 # to: locA
+ * durations { seconds: 0 } meters: 0 # to: locB
+ * }
+ * }
+ * }
+ * ```
+ * * There are three locations: locA, locB and locC.
+ * * 1 vehicle starting its route at locA and ending it at locB, using
+ * matrix "fast".
+ * * 1 vehicle starting its route at locB and ending it at locB, using
+ * matrix "slow".
+ * * 1 vehicle starting its route at locB and ending it at locB, using
+ * matrix "fast".
+ * * 1 pickup visit request at locC.
+ * ```
+ * model {
+ * vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
+ * vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
+ * vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
+ * shipments { pickups { tags: "locC" } }
+ * duration_distance_matrix_src_tags: "locA"
+ * duration_distance_matrix_src_tags: "locB"
+ * duration_distance_matrix_src_tags: "locC"
+ * duration_distance_matrix_dst_tags: "locB"
+ * duration_distance_matrix_dst_tags: "locC"
+ * duration_distance_matrices {
+ * vehicle_start_tag: "fast"
+ * rows { # from: locA
+ * durations { seconds: 1000 } meters: 2000 # to: locB
+ * durations { seconds: 600 } meters: 1000 # to: locC
+ * }
+ * rows { # from: locB
+ * durations { seconds: 0 } meters: 0 # to: locB
+ * durations { seconds: 700 } meters: 1200 # to: locC
+ * }
+ * rows { # from: locC
+ * durations { seconds: 702 } meters: 1190 # to: locB
+ * durations { seconds: 0 } meters: 0 # to: locC
+ * }
+ * }
+ * duration_distance_matrices {
+ * vehicle_start_tag: "slow"
+ * rows { # from: locA
+ * durations { seconds: 1800 } meters: 2001 # to: locB
+ * durations { seconds: 900 } meters: 1002 # to: locC
+ * }
+ * rows { # from: locB
+ * durations { seconds: 0 } meters: 0 # to: locB
+ * durations { seconds: 1000 } meters: 1202 # to: locC
+ * }
+ * rows { # from: locC
+ * durations { seconds: 1001 } meters: 1195 # to: locB
+ * durations { seconds: 0 } meters: 0 # to: locC
+ * }
+ * }
+ * }
+ * ```
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDurationDistanceMatrices()
+ {
+ return $this->duration_distance_matrices;
+ }
+
+ /**
+ * Specifies duration and distance matrices used in the model. If this field
+ * is empty, Google Maps or geodesic distances will be used instead, depending
+ * on the value of the `use_geodesic_distances` field. If it is not empty,
+ * `use_geodesic_distances` cannot be true and neither
+ * `duration_distance_matrix_src_tags` nor `duration_distance_matrix_dst_tags`
+ * can be empty.
+ * Usage examples:
+ * * There are two locations: locA and locB.
+ * * 1 vehicle starting its route at locA and ending it at locA.
+ * * 1 pickup visit request at locB.
+ * ```
+ * model {
+ * vehicles { start_tags: "locA" end_tags: "locA" }
+ * shipments { pickups { tags: "locB" } }
+ * duration_distance_matrix_src_tags: "locA"
+ * duration_distance_matrix_src_tags: "locB"
+ * duration_distance_matrix_dst_tags: "locA"
+ * duration_distance_matrix_dst_tags: "locB"
+ * duration_distance_matrices {
+ * rows { # from: locA
+ * durations { seconds: 0 } meters: 0 # to: locA
+ * durations { seconds: 100 } meters: 1000 # to: locB
+ * }
+ * rows { # from: locB
+ * durations { seconds: 102 } meters: 990 # to: locA
+ * durations { seconds: 0 } meters: 0 # to: locB
+ * }
+ * }
+ * }
+ * ```
+ * * There are three locations: locA, locB and locC.
+ * * 1 vehicle starting its route at locA and ending it at locB, using
+ * matrix "fast".
+ * * 1 vehicle starting its route at locB and ending it at locB, using
+ * matrix "slow".
+ * * 1 vehicle starting its route at locB and ending it at locB, using
+ * matrix "fast".
+ * * 1 pickup visit request at locC.
+ * ```
+ * model {
+ * vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" }
+ * vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" }
+ * vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" }
+ * shipments { pickups { tags: "locC" } }
+ * duration_distance_matrix_src_tags: "locA"
+ * duration_distance_matrix_src_tags: "locB"
+ * duration_distance_matrix_src_tags: "locC"
+ * duration_distance_matrix_dst_tags: "locB"
+ * duration_distance_matrix_dst_tags: "locC"
+ * duration_distance_matrices {
+ * vehicle_start_tag: "fast"
+ * rows { # from: locA
+ * durations { seconds: 1000 } meters: 2000 # to: locB
+ * durations { seconds: 600 } meters: 1000 # to: locC
+ * }
+ * rows { # from: locB
+ * durations { seconds: 0 } meters: 0 # to: locB
+ * durations { seconds: 700 } meters: 1200 # to: locC
+ * }
+ * rows { # from: locC
+ * durations { seconds: 702 } meters: 1190 # to: locB
+ * durations { seconds: 0 } meters: 0 # to: locC
+ * }
+ * }
+ * duration_distance_matrices {
+ * vehicle_start_tag: "slow"
+ * rows { # from: locA
+ * durations { seconds: 1800 } meters: 2001 # to: locB
+ * durations { seconds: 900 } meters: 1002 # to: locC
+ * }
+ * rows { # from: locB
+ * durations { seconds: 0 } meters: 0 # to: locB
+ * durations { seconds: 1000 } meters: 1202 # to: locC
+ * }
+ * rows { # from: locC
+ * durations { seconds: 1001 } meters: 1195 # to: locB
+ * durations { seconds: 0 } meters: 0 # to: locC
+ * }
+ * }
+ * }
+ * ```
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;
+ * @param array<\Google\Maps\RouteOptimization\V1\ShipmentModel\DurationDistanceMatrix>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDurationDistanceMatrices($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\ShipmentModel\DurationDistanceMatrix::class);
+ $this->duration_distance_matrices = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Tags defining the sources of the duration and distance matrices;
+ * `duration_distance_matrices(i).rows(j)` defines durations and distances
+ * from visits with tag `duration_distance_matrix_src_tags(j)` to other visits
+ * in matrix i.
+ * Tags correspond to
+ * [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags]
+ * or
+ * [Vehicle.start_tags][google.maps.routeoptimization.v1.Vehicle.start_tags].
+ * A given `VisitRequest` or `Vehicle` must match exactly one tag in this
+ * field. Note that a `Vehicle`'s source, destination and matrix tags may be
+ * the same; similarly a `VisitRequest`'s source and destination tags may be
+ * the same. All tags must be different and cannot be empty strings. If this
+ * field is not empty, then `duration_distance_matrices` must not be empty.
+ *
+ * Generated from protobuf field repeated string duration_distance_matrix_src_tags = 9;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDurationDistanceMatrixSrcTags()
+ {
+ return $this->duration_distance_matrix_src_tags;
+ }
+
+ /**
+ * Tags defining the sources of the duration and distance matrices;
+ * `duration_distance_matrices(i).rows(j)` defines durations and distances
+ * from visits with tag `duration_distance_matrix_src_tags(j)` to other visits
+ * in matrix i.
+ * Tags correspond to
+ * [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags]
+ * or
+ * [Vehicle.start_tags][google.maps.routeoptimization.v1.Vehicle.start_tags].
+ * A given `VisitRequest` or `Vehicle` must match exactly one tag in this
+ * field. Note that a `Vehicle`'s source, destination and matrix tags may be
+ * the same; similarly a `VisitRequest`'s source and destination tags may be
+ * the same. All tags must be different and cannot be empty strings. If this
+ * field is not empty, then `duration_distance_matrices` must not be empty.
+ *
+ * Generated from protobuf field repeated string duration_distance_matrix_src_tags = 9;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDurationDistanceMatrixSrcTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->duration_distance_matrix_src_tags = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Tags defining the destinations of the duration and distance matrices;
+ * `duration_distance_matrices(i).rows(j).durations(k)` (resp.
+ * `duration_distance_matrices(i).rows(j).meters(k))` defines the duration
+ * (resp. the distance) of the travel from visits with tag
+ * `duration_distance_matrix_src_tags(j)` to visits with tag
+ * `duration_distance_matrix_dst_tags(k)` in matrix i.
+ * Tags correspond to
+ * [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags]
+ * or
+ * [Vehicle.start_tags][google.maps.routeoptimization.v1.Vehicle.start_tags].
+ * A given `VisitRequest` or `Vehicle` must match exactly one tag in this
+ * field. Note that a `Vehicle`'s source, destination and matrix tags may be
+ * the same; similarly a `VisitRequest`'s source and destination tags may be
+ * the same. All tags must be different and cannot be empty strings. If this
+ * field is not empty, then `duration_distance_matrices` must not be empty.
+ *
+ * Generated from protobuf field repeated string duration_distance_matrix_dst_tags = 10;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDurationDistanceMatrixDstTags()
+ {
+ return $this->duration_distance_matrix_dst_tags;
+ }
+
+ /**
+ * Tags defining the destinations of the duration and distance matrices;
+ * `duration_distance_matrices(i).rows(j).durations(k)` (resp.
+ * `duration_distance_matrices(i).rows(j).meters(k))` defines the duration
+ * (resp. the distance) of the travel from visits with tag
+ * `duration_distance_matrix_src_tags(j)` to visits with tag
+ * `duration_distance_matrix_dst_tags(k)` in matrix i.
+ * Tags correspond to
+ * [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags]
+ * or
+ * [Vehicle.start_tags][google.maps.routeoptimization.v1.Vehicle.start_tags].
+ * A given `VisitRequest` or `Vehicle` must match exactly one tag in this
+ * field. Note that a `Vehicle`'s source, destination and matrix tags may be
+ * the same; similarly a `VisitRequest`'s source and destination tags may be
+ * the same. All tags must be different and cannot be empty strings. If this
+ * field is not empty, then `duration_distance_matrices` must not be empty.
+ *
+ * Generated from protobuf field repeated string duration_distance_matrix_dst_tags = 10;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDurationDistanceMatrixDstTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->duration_distance_matrix_dst_tags = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Transition attributes added to the model.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.TransitionAttributes transition_attributes = 11;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTransitionAttributes()
+ {
+ return $this->transition_attributes;
+ }
+
+ /**
+ * Transition attributes added to the model.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.TransitionAttributes transition_attributes = 11;
+ * @param array<\Google\Maps\RouteOptimization\V1\TransitionAttributes>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTransitionAttributes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\TransitionAttributes::class);
+ $this->transition_attributes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getShipmentTypeIncompatibilities()
+ {
+ return $this->shipment_type_incompatibilities;
+ }
+
+ /**
+ * Sets of incompatible shipment_types (see `ShipmentTypeIncompatibility`).
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;
+ * @param array<\Google\Maps\RouteOptimization\V1\ShipmentTypeIncompatibility>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setShipmentTypeIncompatibilities($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\ShipmentTypeIncompatibility::class);
+ $this->shipment_type_incompatibilities = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getShipmentTypeRequirements()
+ {
+ return $this->shipment_type_requirements;
+ }
+
+ /**
+ * Sets of `shipment_type` requirements (see `ShipmentTypeRequirement`).
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;
+ * @param array<\Google\Maps\RouteOptimization\V1\ShipmentTypeRequirement>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setShipmentTypeRequirements($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\ShipmentTypeRequirement::class);
+ $this->shipment_type_requirements = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Set of precedence rules which must be enforced in the model.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPrecedenceRules()
+ {
+ return $this->precedence_rules;
+ }
+
+ /**
+ * Set of precedence rules which must be enforced in the model.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;
+ * @param array<\Google\Maps\RouteOptimization\V1\ShipmentModel\PrecedenceRule>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPrecedenceRules($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\ShipmentModel\PrecedenceRule::class);
+ $this->precedence_rules = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentModel/DurationDistanceMatrix.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentModel/DurationDistanceMatrix.php
new file mode 100644
index 000000000000..5bc080ab9ce0
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentModel/DurationDistanceMatrix.php
@@ -0,0 +1,137 @@
+google.maps.routeoptimization.v1.ShipmentModel.DurationDistanceMatrix
+ */
+class DurationDistanceMatrix extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Specifies the rows of the duration and distance matrix. It must have as
+ * many elements as
+ * [ShipmentModel.duration_distance_matrix_src_tags][google.maps.routeoptimization.v1.ShipmentModel.duration_distance_matrix_src_tags].
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentModel.DurationDistanceMatrix.Row rows = 1;
+ */
+ private $rows;
+ /**
+ * Tag defining to which vehicles this duration and distance matrix applies.
+ * If empty, this applies to all vehicles, and there can only be a single
+ * matrix.
+ * Each vehicle start must match exactly one matrix, i.e. exactly one of
+ * their `start_tags` field must match the `vehicle_start_tag` of a matrix
+ * (and of that matrix only).
+ * All matrices must have a different `vehicle_start_tag`.
+ *
+ * Generated from protobuf field string vehicle_start_tag = 2;
+ */
+ protected $vehicle_start_tag = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Maps\RouteOptimization\V1\ShipmentModel\DurationDistanceMatrix\Row>|\Google\Protobuf\Internal\RepeatedField $rows
+ * Specifies the rows of the duration and distance matrix. It must have as
+ * many elements as
+ * [ShipmentModel.duration_distance_matrix_src_tags][google.maps.routeoptimization.v1.ShipmentModel.duration_distance_matrix_src_tags].
+ * @type string $vehicle_start_tag
+ * Tag defining to which vehicles this duration and distance matrix applies.
+ * If empty, this applies to all vehicles, and there can only be a single
+ * matrix.
+ * Each vehicle start must match exactly one matrix, i.e. exactly one of
+ * their `start_tags` field must match the `vehicle_start_tag` of a matrix
+ * (and of that matrix only).
+ * All matrices must have a different `vehicle_start_tag`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Specifies the rows of the duration and distance matrix. It must have as
+ * many elements as
+ * [ShipmentModel.duration_distance_matrix_src_tags][google.maps.routeoptimization.v1.ShipmentModel.duration_distance_matrix_src_tags].
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentModel.DurationDistanceMatrix.Row rows = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRows()
+ {
+ return $this->rows;
+ }
+
+ /**
+ * Specifies the rows of the duration and distance matrix. It must have as
+ * many elements as
+ * [ShipmentModel.duration_distance_matrix_src_tags][google.maps.routeoptimization.v1.ShipmentModel.duration_distance_matrix_src_tags].
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentModel.DurationDistanceMatrix.Row rows = 1;
+ * @param array<\Google\Maps\RouteOptimization\V1\ShipmentModel\DurationDistanceMatrix\Row>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRows($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\ShipmentModel\DurationDistanceMatrix\Row::class);
+ $this->rows = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Tag defining to which vehicles this duration and distance matrix applies.
+ * If empty, this applies to all vehicles, and there can only be a single
+ * matrix.
+ * Each vehicle start must match exactly one matrix, i.e. exactly one of
+ * their `start_tags` field must match the `vehicle_start_tag` of a matrix
+ * (and of that matrix only).
+ * All matrices must have a different `vehicle_start_tag`.
+ *
+ * Generated from protobuf field string vehicle_start_tag = 2;
+ * @return string
+ */
+ public function getVehicleStartTag()
+ {
+ return $this->vehicle_start_tag;
+ }
+
+ /**
+ * Tag defining to which vehicles this duration and distance matrix applies.
+ * If empty, this applies to all vehicles, and there can only be a single
+ * matrix.
+ * Each vehicle start must match exactly one matrix, i.e. exactly one of
+ * their `start_tags` field must match the `vehicle_start_tag` of a matrix
+ * (and of that matrix only).
+ * All matrices must have a different `vehicle_start_tag`.
+ *
+ * Generated from protobuf field string vehicle_start_tag = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setVehicleStartTag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->vehicle_start_tag = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(DurationDistanceMatrix::class, \Google\Maps\RouteOptimization\V1\ShipmentModel_DurationDistanceMatrix::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentModel/DurationDistanceMatrix/Row.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentModel/DurationDistanceMatrix/Row.php
new file mode 100644
index 000000000000..ade7fdceddc1
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentModel/DurationDistanceMatrix/Row.php
@@ -0,0 +1,116 @@
+google.maps.routeoptimization.v1.ShipmentModel.DurationDistanceMatrix.Row
+ */
+class Row extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Duration values for a given row. It must have as many elements as
+ * [ShipmentModel.duration_distance_matrix_dst_tags][google.maps.routeoptimization.v1.ShipmentModel.duration_distance_matrix_dst_tags].
+ *
+ * Generated from protobuf field repeated .google.protobuf.Duration durations = 1;
+ */
+ private $durations;
+ /**
+ * Distance values for a given row. If no costs or constraints refer to
+ * distances in the model, this can be left empty; otherwise it must have
+ * as many elements as `durations`.
+ *
+ * Generated from protobuf field repeated double meters = 2;
+ */
+ private $meters;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Protobuf\Duration>|\Google\Protobuf\Internal\RepeatedField $durations
+ * Duration values for a given row. It must have as many elements as
+ * [ShipmentModel.duration_distance_matrix_dst_tags][google.maps.routeoptimization.v1.ShipmentModel.duration_distance_matrix_dst_tags].
+ * @type array|\Google\Protobuf\Internal\RepeatedField $meters
+ * Distance values for a given row. If no costs or constraints refer to
+ * distances in the model, this can be left empty; otherwise it must have
+ * as many elements as `durations`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Duration values for a given row. It must have as many elements as
+ * [ShipmentModel.duration_distance_matrix_dst_tags][google.maps.routeoptimization.v1.ShipmentModel.duration_distance_matrix_dst_tags].
+ *
+ * Generated from protobuf field repeated .google.protobuf.Duration durations = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDurations()
+ {
+ return $this->durations;
+ }
+
+ /**
+ * Duration values for a given row. It must have as many elements as
+ * [ShipmentModel.duration_distance_matrix_dst_tags][google.maps.routeoptimization.v1.ShipmentModel.duration_distance_matrix_dst_tags].
+ *
+ * Generated from protobuf field repeated .google.protobuf.Duration durations = 1;
+ * @param array<\Google\Protobuf\Duration>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDurations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Duration::class);
+ $this->durations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Distance values for a given row. If no costs or constraints refer to
+ * distances in the model, this can be left empty; otherwise it must have
+ * as many elements as `durations`.
+ *
+ * Generated from protobuf field repeated double meters = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getMeters()
+ {
+ return $this->meters;
+ }
+
+ /**
+ * Distance values for a given row. If no costs or constraints refer to
+ * distances in the model, this can be left empty; otherwise it must have
+ * as many elements as `durations`.
+ *
+ * Generated from protobuf field repeated double meters = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setMeters($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::DOUBLE);
+ $this->meters = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Row::class, \Google\Maps\RouteOptimization\V1\ShipmentModel_DurationDistanceMatrix_Row::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentModel/PrecedenceRule.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentModel/PrecedenceRule.php
new file mode 100644
index 000000000000..d83e3791b007
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentModel/PrecedenceRule.php
@@ -0,0 +1,243 @@
+google.maps.routeoptimization.v1.ShipmentModel.PrecedenceRule
+ */
+class PrecedenceRule extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Shipment index of the "first" event. This field must be specified.
+ *
+ * Generated from protobuf field optional int32 first_index = 1;
+ */
+ protected $first_index = null;
+ /**
+ * Indicates if the "first" event is a delivery.
+ *
+ * Generated from protobuf field bool first_is_delivery = 3;
+ */
+ protected $first_is_delivery = false;
+ /**
+ * Shipment index of the "second" event. This field must be specified.
+ *
+ * Generated from protobuf field optional int32 second_index = 2;
+ */
+ protected $second_index = null;
+ /**
+ * Indicates if the "second" event is a delivery.
+ *
+ * Generated from protobuf field bool second_is_delivery = 4;
+ */
+ protected $second_is_delivery = false;
+ /**
+ * The offset between the "first" and "second" event. It can be negative.
+ *
+ * Generated from protobuf field .google.protobuf.Duration offset_duration = 5;
+ */
+ protected $offset_duration = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $first_index
+ * Shipment index of the "first" event. This field must be specified.
+ * @type bool $first_is_delivery
+ * Indicates if the "first" event is a delivery.
+ * @type int $second_index
+ * Shipment index of the "second" event. This field must be specified.
+ * @type bool $second_is_delivery
+ * Indicates if the "second" event is a delivery.
+ * @type \Google\Protobuf\Duration $offset_duration
+ * The offset between the "first" and "second" event. It can be negative.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Shipment index of the "first" event. This field must be specified.
+ *
+ * Generated from protobuf field optional int32 first_index = 1;
+ * @return int
+ */
+ public function getFirstIndex()
+ {
+ return isset($this->first_index) ? $this->first_index : 0;
+ }
+
+ public function hasFirstIndex()
+ {
+ return isset($this->first_index);
+ }
+
+ public function clearFirstIndex()
+ {
+ unset($this->first_index);
+ }
+
+ /**
+ * Shipment index of the "first" event. This field must be specified.
+ *
+ * Generated from protobuf field optional int32 first_index = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setFirstIndex($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->first_index = $var;
+
+ return $this;
+ }
+
+ /**
+ * Indicates if the "first" event is a delivery.
+ *
+ * Generated from protobuf field bool first_is_delivery = 3;
+ * @return bool
+ */
+ public function getFirstIsDelivery()
+ {
+ return $this->first_is_delivery;
+ }
+
+ /**
+ * Indicates if the "first" event is a delivery.
+ *
+ * Generated from protobuf field bool first_is_delivery = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setFirstIsDelivery($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->first_is_delivery = $var;
+
+ return $this;
+ }
+
+ /**
+ * Shipment index of the "second" event. This field must be specified.
+ *
+ * Generated from protobuf field optional int32 second_index = 2;
+ * @return int
+ */
+ public function getSecondIndex()
+ {
+ return isset($this->second_index) ? $this->second_index : 0;
+ }
+
+ public function hasSecondIndex()
+ {
+ return isset($this->second_index);
+ }
+
+ public function clearSecondIndex()
+ {
+ unset($this->second_index);
+ }
+
+ /**
+ * Shipment index of the "second" event. This field must be specified.
+ *
+ * Generated from protobuf field optional int32 second_index = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setSecondIndex($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->second_index = $var;
+
+ return $this;
+ }
+
+ /**
+ * Indicates if the "second" event is a delivery.
+ *
+ * Generated from protobuf field bool second_is_delivery = 4;
+ * @return bool
+ */
+ public function getSecondIsDelivery()
+ {
+ return $this->second_is_delivery;
+ }
+
+ /**
+ * Indicates if the "second" event is a delivery.
+ *
+ * Generated from protobuf field bool second_is_delivery = 4;
+ * @param bool $var
+ * @return $this
+ */
+ public function setSecondIsDelivery($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->second_is_delivery = $var;
+
+ return $this;
+ }
+
+ /**
+ * The offset between the "first" and "second" event. It can be negative.
+ *
+ * Generated from protobuf field .google.protobuf.Duration offset_duration = 5;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getOffsetDuration()
+ {
+ return $this->offset_duration;
+ }
+
+ public function hasOffsetDuration()
+ {
+ return isset($this->offset_duration);
+ }
+
+ public function clearOffsetDuration()
+ {
+ unset($this->offset_duration);
+ }
+
+ /**
+ * The offset between the "first" and "second" event. It can be negative.
+ *
+ * Generated from protobuf field .google.protobuf.Duration offset_duration = 5;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setOffsetDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->offset_duration = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PrecedenceRule::class, \Google\Maps\RouteOptimization\V1\ShipmentModel_PrecedenceRule::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute.php
new file mode 100644
index 000000000000..3c191d29cca6
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute.php
@@ -0,0 +1,706 @@
+
+ * | TRANSITION[i] | VISIT[i] |
+ * | | |
+ * | * TRAVEL: the vehicle moves from | PERFORM the visit: |
+ * | VISIT[i-1].departure_location to | |
+ * | VISIT[i].arrival_location, which | * Spend some time: |
+ * | takes a given travel duration | the "visit duration". |
+ * | and distance | |
+ * | | * Load or unload |
+ * | * BREAKS: the driver may have | some quantities from the |
+ * | breaks (e.g. lunch break). | vehicle: the "demand". |
+ * | | |
+ * | * WAIT: the driver/vehicle does | |
+ * | nothing. This can happen for | |
+ * | many reasons, for example when | |
+ * | the vehicle reaches the next | |
+ * | event's destination before the | |
+ * | start of its time window | |
+ * | | |
+ * | * DELAY: *right before* the next | |
+ * | arrival. E.g. the vehicle and/or | |
+ * | driver spends time unloading. | |
+ * | | |
+ * ---+-------------------------------------+-----------------------------+-->
+ * ^ ^ ^
+ * V[i-1].end V[i].start V[i].end
+ * ```
+ * Lastly, here is how the TRAVEL, BREAKS, DELAY and WAIT can be arranged
+ * during a transition.
+ * * They don't overlap.
+ * * The DELAY is unique and *must* be a contiguous period of time right
+ * before the next visit (or vehicle end). Thus, it suffice to know the
+ * delay duration to know its start and end time.
+ * * The BREAKS are contiguous, non-overlapping periods of time. The
+ * response specifies the start time and duration of each break.
+ * * TRAVEL and WAIT are "preemptable": they can be interrupted several times
+ * during this transition. Clients can assume that travel happens "as soon as
+ * possible" and that "wait" fills the remaining time.
+ * A (complex) example:
+ * ```
+ * TRANSITION[i]
+ * --++-----+-----------------------------------------------------------++-->
+ * || | | | | | | ||
+ * || T | B | T | | B | | D ||
+ * || r | r | r | W | r | W | e ||
+ * || a | e | a | a | e | a | l ||
+ * || v | a | v | i | a | i | a ||
+ * || e | k | e | t | k | t | y ||
+ * || l | | l | | | | ||
+ * || | | | | | | ||
+ * --++-----------------------------------------------------------------++-->
+ * ```
+ *
+ * Generated from protobuf message google.maps.routeoptimization.v1.ShipmentRoute
+ */
+class ShipmentRoute extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Vehicle performing the route, identified by its index in the source
+ * `ShipmentModel`.
+ *
+ * Generated from protobuf field int32 vehicle_index = 1;
+ */
+ protected $vehicle_index = 0;
+ /**
+ * Label of the vehicle performing this route, equal to
+ * `ShipmentModel.vehicles(vehicle_index).label`, if specified.
+ *
+ * Generated from protobuf field string vehicle_label = 2;
+ */
+ protected $vehicle_label = '';
+ /**
+ * Time at which the vehicle starts its route.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp vehicle_start_time = 5;
+ */
+ protected $vehicle_start_time = null;
+ /**
+ * Time at which the vehicle finishes its route.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp vehicle_end_time = 6;
+ */
+ protected $vehicle_end_time = null;
+ /**
+ * Ordered sequence of visits representing a route.
+ * visits[i] is the i-th visit in the route.
+ * If this field is empty, the vehicle is considered as unused.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute.Visit visits = 7;
+ */
+ private $visits;
+ /**
+ * Ordered list of transitions for the route.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute.Transition transitions = 8;
+ */
+ private $transitions;
+ /**
+ * When
+ * [OptimizeToursRequest.consider_road_traffic][google.maps.routeoptimization.v1.OptimizeToursRequest.consider_road_traffic],
+ * is set to true, this field indicates that inconsistencies in route timings
+ * are predicted using traffic-based travel duration estimates. There may be
+ * insufficient time to complete traffic-adjusted travel, delays, and breaks
+ * between visits, before the first visit, or after the last visit, while
+ * still satisfying the visit and vehicle time windows. For example,
+ * ```
+ * start_time(previous_visit) + duration(previous_visit) +
+ * travel_duration(previous_visit, next_visit) > start_time(next_visit)
+ * ```
+ * Arrival at next_visit will likely happen later than its current
+ * time window due the increased estimate of travel time
+ * `travel_duration(previous_visit, next_visit)` due to traffic. Also, a break
+ * may be forced to overlap with a visit due to an increase in travel time
+ * estimates and visit or break time window restrictions.
+ *
+ * Generated from protobuf field bool has_traffic_infeasibilities = 9;
+ */
+ protected $has_traffic_infeasibilities = false;
+ /**
+ * The encoded polyline representation of the route.
+ * This field is only populated if
+ * [OptimizeToursRequest.populate_polylines][google.maps.routeoptimization.v1.OptimizeToursRequest.populate_polylines]
+ * is set to true.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.ShipmentRoute.EncodedPolyline route_polyline = 10;
+ */
+ protected $route_polyline = null;
+ /**
+ * Breaks scheduled for the vehicle performing this route.
+ * The `breaks` sequence represents time intervals, each starting at the
+ * corresponding `start_time` and lasting `duration` seconds.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute.Break breaks = 11;
+ */
+ private $breaks;
+ /**
+ * Duration, distance and load metrics for this route. The fields of
+ * [AggregatedMetrics][google.maps.routeoptimization.v1.AggregatedMetrics] are
+ * summed over all
+ * [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions]
+ * or
+ * [ShipmentRoute.visits][google.maps.routeoptimization.v1.ShipmentRoute.visits],
+ * depending on the context.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.AggregatedMetrics metrics = 12;
+ */
+ protected $metrics = null;
+ /**
+ * Cost of the route, broken down by cost-related request fields.
+ * The keys are proto paths, relative to the input OptimizeToursRequest, e.g.
+ * "model.shipments.pickups.cost", and the values are the total cost
+ * generated by the corresponding cost field, aggregated over the whole route.
+ * In other words, costs["model.shipments.pickups.cost"] is the sum of all
+ * pickup costs over the route. All costs defined in the model are reported in
+ * detail here with the exception of costs related to TransitionAttributes
+ * that are only reported in an aggregated way as of 2022/01.
+ *
+ * Generated from protobuf field map route_costs = 17;
+ */
+ private $route_costs;
+ /**
+ * Total cost of the route. The sum of all costs in the cost map.
+ *
+ * Generated from protobuf field double route_total_cost = 18;
+ */
+ protected $route_total_cost = 0.0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $vehicle_index
+ * Vehicle performing the route, identified by its index in the source
+ * `ShipmentModel`.
+ * @type string $vehicle_label
+ * Label of the vehicle performing this route, equal to
+ * `ShipmentModel.vehicles(vehicle_index).label`, if specified.
+ * @type \Google\Protobuf\Timestamp $vehicle_start_time
+ * Time at which the vehicle starts its route.
+ * @type \Google\Protobuf\Timestamp $vehicle_end_time
+ * Time at which the vehicle finishes its route.
+ * @type array<\Google\Maps\RouteOptimization\V1\ShipmentRoute\Visit>|\Google\Protobuf\Internal\RepeatedField $visits
+ * Ordered sequence of visits representing a route.
+ * visits[i] is the i-th visit in the route.
+ * If this field is empty, the vehicle is considered as unused.
+ * @type array<\Google\Maps\RouteOptimization\V1\ShipmentRoute\Transition>|\Google\Protobuf\Internal\RepeatedField $transitions
+ * Ordered list of transitions for the route.
+ * @type bool $has_traffic_infeasibilities
+ * When
+ * [OptimizeToursRequest.consider_road_traffic][google.maps.routeoptimization.v1.OptimizeToursRequest.consider_road_traffic],
+ * is set to true, this field indicates that inconsistencies in route timings
+ * are predicted using traffic-based travel duration estimates. There may be
+ * insufficient time to complete traffic-adjusted travel, delays, and breaks
+ * between visits, before the first visit, or after the last visit, while
+ * still satisfying the visit and vehicle time windows. For example,
+ * ```
+ * start_time(previous_visit) + duration(previous_visit) +
+ * travel_duration(previous_visit, next_visit) > start_time(next_visit)
+ * ```
+ * Arrival at next_visit will likely happen later than its current
+ * time window due the increased estimate of travel time
+ * `travel_duration(previous_visit, next_visit)` due to traffic. Also, a break
+ * may be forced to overlap with a visit due to an increase in travel time
+ * estimates and visit or break time window restrictions.
+ * @type \Google\Maps\RouteOptimization\V1\ShipmentRoute\EncodedPolyline $route_polyline
+ * The encoded polyline representation of the route.
+ * This field is only populated if
+ * [OptimizeToursRequest.populate_polylines][google.maps.routeoptimization.v1.OptimizeToursRequest.populate_polylines]
+ * is set to true.
+ * @type array<\Google\Maps\RouteOptimization\V1\ShipmentRoute\PBBreak>|\Google\Protobuf\Internal\RepeatedField $breaks
+ * Breaks scheduled for the vehicle performing this route.
+ * The `breaks` sequence represents time intervals, each starting at the
+ * corresponding `start_time` and lasting `duration` seconds.
+ * @type \Google\Maps\RouteOptimization\V1\AggregatedMetrics $metrics
+ * Duration, distance and load metrics for this route. The fields of
+ * [AggregatedMetrics][google.maps.routeoptimization.v1.AggregatedMetrics] are
+ * summed over all
+ * [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions]
+ * or
+ * [ShipmentRoute.visits][google.maps.routeoptimization.v1.ShipmentRoute.visits],
+ * depending on the context.
+ * @type array|\Google\Protobuf\Internal\MapField $route_costs
+ * Cost of the route, broken down by cost-related request fields.
+ * The keys are proto paths, relative to the input OptimizeToursRequest, e.g.
+ * "model.shipments.pickups.cost", and the values are the total cost
+ * generated by the corresponding cost field, aggregated over the whole route.
+ * In other words, costs["model.shipments.pickups.cost"] is the sum of all
+ * pickup costs over the route. All costs defined in the model are reported in
+ * detail here with the exception of costs related to TransitionAttributes
+ * that are only reported in an aggregated way as of 2022/01.
+ * @type float $route_total_cost
+ * Total cost of the route. The sum of all costs in the cost map.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Vehicle performing the route, identified by its index in the source
+ * `ShipmentModel`.
+ *
+ * Generated from protobuf field int32 vehicle_index = 1;
+ * @return int
+ */
+ public function getVehicleIndex()
+ {
+ return $this->vehicle_index;
+ }
+
+ /**
+ * Vehicle performing the route, identified by its index in the source
+ * `ShipmentModel`.
+ *
+ * Generated from protobuf field int32 vehicle_index = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setVehicleIndex($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->vehicle_index = $var;
+
+ return $this;
+ }
+
+ /**
+ * Label of the vehicle performing this route, equal to
+ * `ShipmentModel.vehicles(vehicle_index).label`, if specified.
+ *
+ * Generated from protobuf field string vehicle_label = 2;
+ * @return string
+ */
+ public function getVehicleLabel()
+ {
+ return $this->vehicle_label;
+ }
+
+ /**
+ * Label of the vehicle performing this route, equal to
+ * `ShipmentModel.vehicles(vehicle_index).label`, if specified.
+ *
+ * Generated from protobuf field string vehicle_label = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setVehicleLabel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->vehicle_label = $var;
+
+ return $this;
+ }
+
+ /**
+ * Time at which the vehicle starts its route.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp vehicle_start_time = 5;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getVehicleStartTime()
+ {
+ return $this->vehicle_start_time;
+ }
+
+ public function hasVehicleStartTime()
+ {
+ return isset($this->vehicle_start_time);
+ }
+
+ public function clearVehicleStartTime()
+ {
+ unset($this->vehicle_start_time);
+ }
+
+ /**
+ * Time at which the vehicle starts its route.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp vehicle_start_time = 5;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setVehicleStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->vehicle_start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Time at which the vehicle finishes its route.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp vehicle_end_time = 6;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getVehicleEndTime()
+ {
+ return $this->vehicle_end_time;
+ }
+
+ public function hasVehicleEndTime()
+ {
+ return isset($this->vehicle_end_time);
+ }
+
+ public function clearVehicleEndTime()
+ {
+ unset($this->vehicle_end_time);
+ }
+
+ /**
+ * Time at which the vehicle finishes its route.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp vehicle_end_time = 6;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setVehicleEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->vehicle_end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Ordered sequence of visits representing a route.
+ * visits[i] is the i-th visit in the route.
+ * If this field is empty, the vehicle is considered as unused.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute.Visit visits = 7;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getVisits()
+ {
+ return $this->visits;
+ }
+
+ /**
+ * Ordered sequence of visits representing a route.
+ * visits[i] is the i-th visit in the route.
+ * If this field is empty, the vehicle is considered as unused.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute.Visit visits = 7;
+ * @param array<\Google\Maps\RouteOptimization\V1\ShipmentRoute\Visit>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setVisits($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\ShipmentRoute\Visit::class);
+ $this->visits = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Ordered list of transitions for the route.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute.Transition transitions = 8;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTransitions()
+ {
+ return $this->transitions;
+ }
+
+ /**
+ * Ordered list of transitions for the route.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute.Transition transitions = 8;
+ * @param array<\Google\Maps\RouteOptimization\V1\ShipmentRoute\Transition>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTransitions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\ShipmentRoute\Transition::class);
+ $this->transitions = $arr;
+
+ return $this;
+ }
+
+ /**
+ * When
+ * [OptimizeToursRequest.consider_road_traffic][google.maps.routeoptimization.v1.OptimizeToursRequest.consider_road_traffic],
+ * is set to true, this field indicates that inconsistencies in route timings
+ * are predicted using traffic-based travel duration estimates. There may be
+ * insufficient time to complete traffic-adjusted travel, delays, and breaks
+ * between visits, before the first visit, or after the last visit, while
+ * still satisfying the visit and vehicle time windows. For example,
+ * ```
+ * start_time(previous_visit) + duration(previous_visit) +
+ * travel_duration(previous_visit, next_visit) > start_time(next_visit)
+ * ```
+ * Arrival at next_visit will likely happen later than its current
+ * time window due the increased estimate of travel time
+ * `travel_duration(previous_visit, next_visit)` due to traffic. Also, a break
+ * may be forced to overlap with a visit due to an increase in travel time
+ * estimates and visit or break time window restrictions.
+ *
+ * Generated from protobuf field bool has_traffic_infeasibilities = 9;
+ * @return bool
+ */
+ public function getHasTrafficInfeasibilities()
+ {
+ return $this->has_traffic_infeasibilities;
+ }
+
+ /**
+ * When
+ * [OptimizeToursRequest.consider_road_traffic][google.maps.routeoptimization.v1.OptimizeToursRequest.consider_road_traffic],
+ * is set to true, this field indicates that inconsistencies in route timings
+ * are predicted using traffic-based travel duration estimates. There may be
+ * insufficient time to complete traffic-adjusted travel, delays, and breaks
+ * between visits, before the first visit, or after the last visit, while
+ * still satisfying the visit and vehicle time windows. For example,
+ * ```
+ * start_time(previous_visit) + duration(previous_visit) +
+ * travel_duration(previous_visit, next_visit) > start_time(next_visit)
+ * ```
+ * Arrival at next_visit will likely happen later than its current
+ * time window due the increased estimate of travel time
+ * `travel_duration(previous_visit, next_visit)` due to traffic. Also, a break
+ * may be forced to overlap with a visit due to an increase in travel time
+ * estimates and visit or break time window restrictions.
+ *
+ * Generated from protobuf field bool has_traffic_infeasibilities = 9;
+ * @param bool $var
+ * @return $this
+ */
+ public function setHasTrafficInfeasibilities($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->has_traffic_infeasibilities = $var;
+
+ return $this;
+ }
+
+ /**
+ * The encoded polyline representation of the route.
+ * This field is only populated if
+ * [OptimizeToursRequest.populate_polylines][google.maps.routeoptimization.v1.OptimizeToursRequest.populate_polylines]
+ * is set to true.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.ShipmentRoute.EncodedPolyline route_polyline = 10;
+ * @return \Google\Maps\RouteOptimization\V1\ShipmentRoute\EncodedPolyline|null
+ */
+ public function getRoutePolyline()
+ {
+ return $this->route_polyline;
+ }
+
+ public function hasRoutePolyline()
+ {
+ return isset($this->route_polyline);
+ }
+
+ public function clearRoutePolyline()
+ {
+ unset($this->route_polyline);
+ }
+
+ /**
+ * The encoded polyline representation of the route.
+ * This field is only populated if
+ * [OptimizeToursRequest.populate_polylines][google.maps.routeoptimization.v1.OptimizeToursRequest.populate_polylines]
+ * is set to true.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.ShipmentRoute.EncodedPolyline route_polyline = 10;
+ * @param \Google\Maps\RouteOptimization\V1\ShipmentRoute\EncodedPolyline $var
+ * @return $this
+ */
+ public function setRoutePolyline($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\ShipmentRoute\EncodedPolyline::class);
+ $this->route_polyline = $var;
+
+ return $this;
+ }
+
+ /**
+ * Breaks scheduled for the vehicle performing this route.
+ * The `breaks` sequence represents time intervals, each starting at the
+ * corresponding `start_time` and lasting `duration` seconds.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute.Break breaks = 11;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getBreaks()
+ {
+ return $this->breaks;
+ }
+
+ /**
+ * Breaks scheduled for the vehicle performing this route.
+ * The `breaks` sequence represents time intervals, each starting at the
+ * corresponding `start_time` and lasting `duration` seconds.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.ShipmentRoute.Break breaks = 11;
+ * @param array<\Google\Maps\RouteOptimization\V1\ShipmentRoute\PBBreak>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setBreaks($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\ShipmentRoute\PBBreak::class);
+ $this->breaks = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Duration, distance and load metrics for this route. The fields of
+ * [AggregatedMetrics][google.maps.routeoptimization.v1.AggregatedMetrics] are
+ * summed over all
+ * [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions]
+ * or
+ * [ShipmentRoute.visits][google.maps.routeoptimization.v1.ShipmentRoute.visits],
+ * depending on the context.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.AggregatedMetrics metrics = 12;
+ * @return \Google\Maps\RouteOptimization\V1\AggregatedMetrics|null
+ */
+ public function getMetrics()
+ {
+ return $this->metrics;
+ }
+
+ public function hasMetrics()
+ {
+ return isset($this->metrics);
+ }
+
+ public function clearMetrics()
+ {
+ unset($this->metrics);
+ }
+
+ /**
+ * Duration, distance and load metrics for this route. The fields of
+ * [AggregatedMetrics][google.maps.routeoptimization.v1.AggregatedMetrics] are
+ * summed over all
+ * [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions]
+ * or
+ * [ShipmentRoute.visits][google.maps.routeoptimization.v1.ShipmentRoute.visits],
+ * depending on the context.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.AggregatedMetrics metrics = 12;
+ * @param \Google\Maps\RouteOptimization\V1\AggregatedMetrics $var
+ * @return $this
+ */
+ public function setMetrics($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\AggregatedMetrics::class);
+ $this->metrics = $var;
+
+ return $this;
+ }
+
+ /**
+ * Cost of the route, broken down by cost-related request fields.
+ * The keys are proto paths, relative to the input OptimizeToursRequest, e.g.
+ * "model.shipments.pickups.cost", and the values are the total cost
+ * generated by the corresponding cost field, aggregated over the whole route.
+ * In other words, costs["model.shipments.pickups.cost"] is the sum of all
+ * pickup costs over the route. All costs defined in the model are reported in
+ * detail here with the exception of costs related to TransitionAttributes
+ * that are only reported in an aggregated way as of 2022/01.
+ *
+ * Generated from protobuf field map route_costs = 17;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getRouteCosts()
+ {
+ return $this->route_costs;
+ }
+
+ /**
+ * Cost of the route, broken down by cost-related request fields.
+ * The keys are proto paths, relative to the input OptimizeToursRequest, e.g.
+ * "model.shipments.pickups.cost", and the values are the total cost
+ * generated by the corresponding cost field, aggregated over the whole route.
+ * In other words, costs["model.shipments.pickups.cost"] is the sum of all
+ * pickup costs over the route. All costs defined in the model are reported in
+ * detail here with the exception of costs related to TransitionAttributes
+ * that are only reported in an aggregated way as of 2022/01.
+ *
+ * Generated from protobuf field map route_costs = 17;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setRouteCosts($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::DOUBLE);
+ $this->route_costs = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Total cost of the route. The sum of all costs in the cost map.
+ *
+ * Generated from protobuf field double route_total_cost = 18;
+ * @return float
+ */
+ public function getRouteTotalCost()
+ {
+ return $this->route_total_cost;
+ }
+
+ /**
+ * Total cost of the route. The sum of all costs in the cost map.
+ *
+ * Generated from protobuf field double route_total_cost = 18;
+ * @param float $var
+ * @return $this
+ */
+ public function setRouteTotalCost($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->route_total_cost = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute/EncodedPolyline.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute/EncodedPolyline.php
new file mode 100644
index 000000000000..a3aecf3c5212
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute/EncodedPolyline.php
@@ -0,0 +1,73 @@
+google.maps.routeoptimization.v1.ShipmentRoute.EncodedPolyline
+ */
+class EncodedPolyline extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * String representing encoded points of the polyline.
+ *
+ * Generated from protobuf field string points = 1;
+ */
+ protected $points = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $points
+ * String representing encoded points of the polyline.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * String representing encoded points of the polyline.
+ *
+ * Generated from protobuf field string points = 1;
+ * @return string
+ */
+ public function getPoints()
+ {
+ return $this->points;
+ }
+
+ /**
+ * String representing encoded points of the polyline.
+ *
+ * Generated from protobuf field string points = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setPoints($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->points = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(EncodedPolyline::class, \Google\Maps\RouteOptimization\V1\ShipmentRoute_EncodedPolyline::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute/PBBreak.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute/PBBreak.php
new file mode 100644
index 000000000000..e05a14f991b9
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute/PBBreak.php
@@ -0,0 +1,124 @@
+google.maps.routeoptimization.v1.ShipmentRoute.Break
+ */
+class PBBreak extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Start time of a break.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1;
+ */
+ protected $start_time = null;
+ /**
+ * Duration of a break.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 2;
+ */
+ protected $duration = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $start_time
+ * Start time of a break.
+ * @type \Google\Protobuf\Duration $duration
+ * Duration of a break.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Start time of a break.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getStartTime()
+ {
+ return $this->start_time;
+ }
+
+ public function hasStartTime()
+ {
+ return isset($this->start_time);
+ }
+
+ public function clearStartTime()
+ {
+ unset($this->start_time);
+ }
+
+ /**
+ * Start time of a break.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Duration of a break.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 2;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getDuration()
+ {
+ return $this->duration;
+ }
+
+ public function hasDuration()
+ {
+ return isset($this->duration);
+ }
+
+ public function clearDuration()
+ {
+ unset($this->duration);
+ }
+
+ /**
+ * Duration of a break.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 2;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->duration = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PBBreak::class, \Google\Maps\RouteOptimization\V1\ShipmentRoute_Break::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute/Transition.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute/Transition.php
new file mode 100644
index 000000000000..e2c4c53592bf
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute/Transition.php
@@ -0,0 +1,639 @@
+google.maps.routeoptimization.v1.ShipmentRoute.Transition
+ */
+class Transition extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Travel duration during this transition.
+ *
+ * Generated from protobuf field .google.protobuf.Duration travel_duration = 1;
+ */
+ protected $travel_duration = null;
+ /**
+ * Distance traveled during the transition.
+ *
+ * Generated from protobuf field double travel_distance_meters = 2;
+ */
+ protected $travel_distance_meters = 0.0;
+ /**
+ * When traffic is requested via
+ * [OptimizeToursRequest.consider_road_traffic]
+ * [google.maps.routeoptimization.v1.OptimizeToursRequest.consider_road_traffic],
+ * and the traffic info couldn't be retrieved for a `Transition`, this
+ * boolean is set to true. This may be temporary (rare hiccup in the
+ * realtime traffic servers) or permanent (no data for this location).
+ *
+ * Generated from protobuf field bool traffic_info_unavailable = 3;
+ */
+ protected $traffic_info_unavailable = false;
+ /**
+ * Sum of the delay durations applied to this transition. If any, the delay
+ * starts exactly `delay_duration` seconds before the next event (visit or
+ * vehicle end). See
+ * [TransitionAttributes.delay][google.maps.routeoptimization.v1.TransitionAttributes.delay].
+ *
+ * Generated from protobuf field .google.protobuf.Duration delay_duration = 4;
+ */
+ protected $delay_duration = null;
+ /**
+ * Sum of the duration of the breaks occurring during this transition, if
+ * any. Details about each break's start time and duration are stored in
+ * [ShipmentRoute.breaks][google.maps.routeoptimization.v1.ShipmentRoute.breaks].
+ *
+ * Generated from protobuf field .google.protobuf.Duration break_duration = 5;
+ */
+ protected $break_duration = null;
+ /**
+ * Time spent waiting during this transition. Wait duration corresponds to
+ * idle time and does not include break time. Also note that this wait time
+ * may be split into several non-contiguous intervals.
+ *
+ * Generated from protobuf field .google.protobuf.Duration wait_duration = 6;
+ */
+ protected $wait_duration = null;
+ /**
+ * Total duration of the transition, provided for convenience. It is equal
+ * to:
+ * * next visit `start_time` (or `vehicle_end_time` if this is the last
+ * transition) - this transition's `start_time`;
+ * * if `ShipmentRoute.has_traffic_infeasibilities` is false, the following
+ * additionally holds: `total_duration = travel_duration + delay_duration
+ * + break_duration + wait_duration`.
+ *
+ * Generated from protobuf field .google.protobuf.Duration total_duration = 7;
+ */
+ protected $total_duration = null;
+ /**
+ * Start time of this transition.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 8;
+ */
+ protected $start_time = null;
+ /**
+ * The encoded polyline representation of the route followed during the
+ * transition.
+ * This field is only populated if [populate_transition_polylines]
+ * [google.maps.routeoptimization.v1.OptimizeToursRequest.populate_transition_polylines]
+ * is set to true.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.ShipmentRoute.EncodedPolyline route_polyline = 9;
+ */
+ protected $route_polyline = null;
+ /**
+ * Output only. An opaque token that can be passed to [Navigation
+ * SDK](https://developers.google.com/maps/documentation/navigation) to
+ * reconstruct the route during navigation, and, in the event of rerouting,
+ * honor the original intention when the route was created. Treat this token
+ * as an opaque blob. Don't compare its value across requests as its value
+ * may change even if the service returns the exact same route. This field
+ * is only populated if [populate_transition_polylines]
+ * [google.maps.routeoptimization.v1.OptimizeToursRequest.populate_transition_polylines]
+ * is set to true.
+ *
+ * Generated from protobuf field string route_token = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $route_token = '';
+ /**
+ * Vehicle loads during this transition, for each type that either appears
+ * in this vehicle's
+ * [Vehicle.load_limits][google.maps.routeoptimization.v1.Vehicle.load_limits],
+ * or that have non-zero
+ * [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands]
+ * on some shipment performed on this route.
+ * The loads during the first transition are the starting loads of the
+ * vehicle route. Then, after each visit, the visit's `load_demands` are
+ * either added or subtracted to get the next transition's loads, depending
+ * on whether the visit was a pickup or a delivery.
+ *
+ * Generated from protobuf field map vehicle_loads = 11;
+ */
+ private $vehicle_loads;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Duration $travel_duration
+ * Travel duration during this transition.
+ * @type float $travel_distance_meters
+ * Distance traveled during the transition.
+ * @type bool $traffic_info_unavailable
+ * When traffic is requested via
+ * [OptimizeToursRequest.consider_road_traffic]
+ * [google.maps.routeoptimization.v1.OptimizeToursRequest.consider_road_traffic],
+ * and the traffic info couldn't be retrieved for a `Transition`, this
+ * boolean is set to true. This may be temporary (rare hiccup in the
+ * realtime traffic servers) or permanent (no data for this location).
+ * @type \Google\Protobuf\Duration $delay_duration
+ * Sum of the delay durations applied to this transition. If any, the delay
+ * starts exactly `delay_duration` seconds before the next event (visit or
+ * vehicle end). See
+ * [TransitionAttributes.delay][google.maps.routeoptimization.v1.TransitionAttributes.delay].
+ * @type \Google\Protobuf\Duration $break_duration
+ * Sum of the duration of the breaks occurring during this transition, if
+ * any. Details about each break's start time and duration are stored in
+ * [ShipmentRoute.breaks][google.maps.routeoptimization.v1.ShipmentRoute.breaks].
+ * @type \Google\Protobuf\Duration $wait_duration
+ * Time spent waiting during this transition. Wait duration corresponds to
+ * idle time and does not include break time. Also note that this wait time
+ * may be split into several non-contiguous intervals.
+ * @type \Google\Protobuf\Duration $total_duration
+ * Total duration of the transition, provided for convenience. It is equal
+ * to:
+ * * next visit `start_time` (or `vehicle_end_time` if this is the last
+ * transition) - this transition's `start_time`;
+ * * if `ShipmentRoute.has_traffic_infeasibilities` is false, the following
+ * additionally holds: `total_duration = travel_duration + delay_duration
+ * + break_duration + wait_duration`.
+ * @type \Google\Protobuf\Timestamp $start_time
+ * Start time of this transition.
+ * @type \Google\Maps\RouteOptimization\V1\ShipmentRoute\EncodedPolyline $route_polyline
+ * The encoded polyline representation of the route followed during the
+ * transition.
+ * This field is only populated if [populate_transition_polylines]
+ * [google.maps.routeoptimization.v1.OptimizeToursRequest.populate_transition_polylines]
+ * is set to true.
+ * @type string $route_token
+ * Output only. An opaque token that can be passed to [Navigation
+ * SDK](https://developers.google.com/maps/documentation/navigation) to
+ * reconstruct the route during navigation, and, in the event of rerouting,
+ * honor the original intention when the route was created. Treat this token
+ * as an opaque blob. Don't compare its value across requests as its value
+ * may change even if the service returns the exact same route. This field
+ * is only populated if [populate_transition_polylines]
+ * [google.maps.routeoptimization.v1.OptimizeToursRequest.populate_transition_polylines]
+ * is set to true.
+ * @type array|\Google\Protobuf\Internal\MapField $vehicle_loads
+ * Vehicle loads during this transition, for each type that either appears
+ * in this vehicle's
+ * [Vehicle.load_limits][google.maps.routeoptimization.v1.Vehicle.load_limits],
+ * or that have non-zero
+ * [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands]
+ * on some shipment performed on this route.
+ * The loads during the first transition are the starting loads of the
+ * vehicle route. Then, after each visit, the visit's `load_demands` are
+ * either added or subtracted to get the next transition's loads, depending
+ * on whether the visit was a pickup or a delivery.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Travel duration during this transition.
+ *
+ * Generated from protobuf field .google.protobuf.Duration travel_duration = 1;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getTravelDuration()
+ {
+ return $this->travel_duration;
+ }
+
+ public function hasTravelDuration()
+ {
+ return isset($this->travel_duration);
+ }
+
+ public function clearTravelDuration()
+ {
+ unset($this->travel_duration);
+ }
+
+ /**
+ * Travel duration during this transition.
+ *
+ * Generated from protobuf field .google.protobuf.Duration travel_duration = 1;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setTravelDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->travel_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Distance traveled during the transition.
+ *
+ * Generated from protobuf field double travel_distance_meters = 2;
+ * @return float
+ */
+ public function getTravelDistanceMeters()
+ {
+ return $this->travel_distance_meters;
+ }
+
+ /**
+ * Distance traveled during the transition.
+ *
+ * Generated from protobuf field double travel_distance_meters = 2;
+ * @param float $var
+ * @return $this
+ */
+ public function setTravelDistanceMeters($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->travel_distance_meters = $var;
+
+ return $this;
+ }
+
+ /**
+ * When traffic is requested via
+ * [OptimizeToursRequest.consider_road_traffic]
+ * [google.maps.routeoptimization.v1.OptimizeToursRequest.consider_road_traffic],
+ * and the traffic info couldn't be retrieved for a `Transition`, this
+ * boolean is set to true. This may be temporary (rare hiccup in the
+ * realtime traffic servers) or permanent (no data for this location).
+ *
+ * Generated from protobuf field bool traffic_info_unavailable = 3;
+ * @return bool
+ */
+ public function getTrafficInfoUnavailable()
+ {
+ return $this->traffic_info_unavailable;
+ }
+
+ /**
+ * When traffic is requested via
+ * [OptimizeToursRequest.consider_road_traffic]
+ * [google.maps.routeoptimization.v1.OptimizeToursRequest.consider_road_traffic],
+ * and the traffic info couldn't be retrieved for a `Transition`, this
+ * boolean is set to true. This may be temporary (rare hiccup in the
+ * realtime traffic servers) or permanent (no data for this location).
+ *
+ * Generated from protobuf field bool traffic_info_unavailable = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setTrafficInfoUnavailable($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->traffic_info_unavailable = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sum of the delay durations applied to this transition. If any, the delay
+ * starts exactly `delay_duration` seconds before the next event (visit or
+ * vehicle end). See
+ * [TransitionAttributes.delay][google.maps.routeoptimization.v1.TransitionAttributes.delay].
+ *
+ * Generated from protobuf field .google.protobuf.Duration delay_duration = 4;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getDelayDuration()
+ {
+ return $this->delay_duration;
+ }
+
+ public function hasDelayDuration()
+ {
+ return isset($this->delay_duration);
+ }
+
+ public function clearDelayDuration()
+ {
+ unset($this->delay_duration);
+ }
+
+ /**
+ * Sum of the delay durations applied to this transition. If any, the delay
+ * starts exactly `delay_duration` seconds before the next event (visit or
+ * vehicle end). See
+ * [TransitionAttributes.delay][google.maps.routeoptimization.v1.TransitionAttributes.delay].
+ *
+ * Generated from protobuf field .google.protobuf.Duration delay_duration = 4;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setDelayDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->delay_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sum of the duration of the breaks occurring during this transition, if
+ * any. Details about each break's start time and duration are stored in
+ * [ShipmentRoute.breaks][google.maps.routeoptimization.v1.ShipmentRoute.breaks].
+ *
+ * Generated from protobuf field .google.protobuf.Duration break_duration = 5;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getBreakDuration()
+ {
+ return $this->break_duration;
+ }
+
+ public function hasBreakDuration()
+ {
+ return isset($this->break_duration);
+ }
+
+ public function clearBreakDuration()
+ {
+ unset($this->break_duration);
+ }
+
+ /**
+ * Sum of the duration of the breaks occurring during this transition, if
+ * any. Details about each break's start time and duration are stored in
+ * [ShipmentRoute.breaks][google.maps.routeoptimization.v1.ShipmentRoute.breaks].
+ *
+ * Generated from protobuf field .google.protobuf.Duration break_duration = 5;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setBreakDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->break_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Time spent waiting during this transition. Wait duration corresponds to
+ * idle time and does not include break time. Also note that this wait time
+ * may be split into several non-contiguous intervals.
+ *
+ * Generated from protobuf field .google.protobuf.Duration wait_duration = 6;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getWaitDuration()
+ {
+ return $this->wait_duration;
+ }
+
+ public function hasWaitDuration()
+ {
+ return isset($this->wait_duration);
+ }
+
+ public function clearWaitDuration()
+ {
+ unset($this->wait_duration);
+ }
+
+ /**
+ * Time spent waiting during this transition. Wait duration corresponds to
+ * idle time and does not include break time. Also note that this wait time
+ * may be split into several non-contiguous intervals.
+ *
+ * Generated from protobuf field .google.protobuf.Duration wait_duration = 6;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setWaitDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->wait_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Total duration of the transition, provided for convenience. It is equal
+ * to:
+ * * next visit `start_time` (or `vehicle_end_time` if this is the last
+ * transition) - this transition's `start_time`;
+ * * if `ShipmentRoute.has_traffic_infeasibilities` is false, the following
+ * additionally holds: `total_duration = travel_duration + delay_duration
+ * + break_duration + wait_duration`.
+ *
+ * Generated from protobuf field .google.protobuf.Duration total_duration = 7;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getTotalDuration()
+ {
+ return $this->total_duration;
+ }
+
+ public function hasTotalDuration()
+ {
+ return isset($this->total_duration);
+ }
+
+ public function clearTotalDuration()
+ {
+ unset($this->total_duration);
+ }
+
+ /**
+ * Total duration of the transition, provided for convenience. It is equal
+ * to:
+ * * next visit `start_time` (or `vehicle_end_time` if this is the last
+ * transition) - this transition's `start_time`;
+ * * if `ShipmentRoute.has_traffic_infeasibilities` is false, the following
+ * additionally holds: `total_duration = travel_duration + delay_duration
+ * + break_duration + wait_duration`.
+ *
+ * Generated from protobuf field .google.protobuf.Duration total_duration = 7;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setTotalDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->total_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Start time of this transition.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 8;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getStartTime()
+ {
+ return $this->start_time;
+ }
+
+ public function hasStartTime()
+ {
+ return isset($this->start_time);
+ }
+
+ public function clearStartTime()
+ {
+ unset($this->start_time);
+ }
+
+ /**
+ * Start time of this transition.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 8;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The encoded polyline representation of the route followed during the
+ * transition.
+ * This field is only populated if [populate_transition_polylines]
+ * [google.maps.routeoptimization.v1.OptimizeToursRequest.populate_transition_polylines]
+ * is set to true.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.ShipmentRoute.EncodedPolyline route_polyline = 9;
+ * @return \Google\Maps\RouteOptimization\V1\ShipmentRoute\EncodedPolyline|null
+ */
+ public function getRoutePolyline()
+ {
+ return $this->route_polyline;
+ }
+
+ public function hasRoutePolyline()
+ {
+ return isset($this->route_polyline);
+ }
+
+ public function clearRoutePolyline()
+ {
+ unset($this->route_polyline);
+ }
+
+ /**
+ * The encoded polyline representation of the route followed during the
+ * transition.
+ * This field is only populated if [populate_transition_polylines]
+ * [google.maps.routeoptimization.v1.OptimizeToursRequest.populate_transition_polylines]
+ * is set to true.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.ShipmentRoute.EncodedPolyline route_polyline = 9;
+ * @param \Google\Maps\RouteOptimization\V1\ShipmentRoute\EncodedPolyline $var
+ * @return $this
+ */
+ public function setRoutePolyline($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\ShipmentRoute\EncodedPolyline::class);
+ $this->route_polyline = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. An opaque token that can be passed to [Navigation
+ * SDK](https://developers.google.com/maps/documentation/navigation) to
+ * reconstruct the route during navigation, and, in the event of rerouting,
+ * honor the original intention when the route was created. Treat this token
+ * as an opaque blob. Don't compare its value across requests as its value
+ * may change even if the service returns the exact same route. This field
+ * is only populated if [populate_transition_polylines]
+ * [google.maps.routeoptimization.v1.OptimizeToursRequest.populate_transition_polylines]
+ * is set to true.
+ *
+ * Generated from protobuf field string route_token = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getRouteToken()
+ {
+ return $this->route_token;
+ }
+
+ /**
+ * Output only. An opaque token that can be passed to [Navigation
+ * SDK](https://developers.google.com/maps/documentation/navigation) to
+ * reconstruct the route during navigation, and, in the event of rerouting,
+ * honor the original intention when the route was created. Treat this token
+ * as an opaque blob. Don't compare its value across requests as its value
+ * may change even if the service returns the exact same route. This field
+ * is only populated if [populate_transition_polylines]
+ * [google.maps.routeoptimization.v1.OptimizeToursRequest.populate_transition_polylines]
+ * is set to true.
+ *
+ * Generated from protobuf field string route_token = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setRouteToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->route_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Vehicle loads during this transition, for each type that either appears
+ * in this vehicle's
+ * [Vehicle.load_limits][google.maps.routeoptimization.v1.Vehicle.load_limits],
+ * or that have non-zero
+ * [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands]
+ * on some shipment performed on this route.
+ * The loads during the first transition are the starting loads of the
+ * vehicle route. Then, after each visit, the visit's `load_demands` are
+ * either added or subtracted to get the next transition's loads, depending
+ * on whether the visit was a pickup or a delivery.
+ *
+ * Generated from protobuf field map vehicle_loads = 11;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getVehicleLoads()
+ {
+ return $this->vehicle_loads;
+ }
+
+ /**
+ * Vehicle loads during this transition, for each type that either appears
+ * in this vehicle's
+ * [Vehicle.load_limits][google.maps.routeoptimization.v1.Vehicle.load_limits],
+ * or that have non-zero
+ * [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands]
+ * on some shipment performed on this route.
+ * The loads during the first transition are the starting loads of the
+ * vehicle route. Then, after each visit, the visit's `load_demands` are
+ * either added or subtracted to get the next transition's loads, depending
+ * on whether the visit was a pickup or a delivery.
+ *
+ * Generated from protobuf field map vehicle_loads = 11;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setVehicleLoads($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\ShipmentRoute\VehicleLoad::class);
+ $this->vehicle_loads = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Transition::class, \Google\Maps\RouteOptimization\V1\ShipmentRoute_Transition::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute/VehicleLoad.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute/VehicleLoad.php
new file mode 100644
index 000000000000..cb8378f1af45
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute/VehicleLoad.php
@@ -0,0 +1,80 @@
+google.maps.routeoptimization.v1.ShipmentRoute.VehicleLoad
+ */
+class VehicleLoad extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The amount of load on the vehicle, for the given type. The unit of load
+ * is usually indicated by the type. See
+ * [Transition.vehicle_loads][google.maps.routeoptimization.v1.ShipmentRoute.Transition.vehicle_loads].
+ *
+ * Generated from protobuf field int64 amount = 1;
+ */
+ protected $amount = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $amount
+ * The amount of load on the vehicle, for the given type. The unit of load
+ * is usually indicated by the type. See
+ * [Transition.vehicle_loads][google.maps.routeoptimization.v1.ShipmentRoute.Transition.vehicle_loads].
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The amount of load on the vehicle, for the given type. The unit of load
+ * is usually indicated by the type. See
+ * [Transition.vehicle_loads][google.maps.routeoptimization.v1.ShipmentRoute.Transition.vehicle_loads].
+ *
+ * Generated from protobuf field int64 amount = 1;
+ * @return int|string
+ */
+ public function getAmount()
+ {
+ return $this->amount;
+ }
+
+ /**
+ * The amount of load on the vehicle, for the given type. The unit of load
+ * is usually indicated by the type. See
+ * [Transition.vehicle_loads][google.maps.routeoptimization.v1.ShipmentRoute.Transition.vehicle_loads].
+ *
+ * Generated from protobuf field int64 amount = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setAmount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->amount = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(VehicleLoad::class, \Google\Maps\RouteOptimization\V1\ShipmentRoute_VehicleLoad::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute/Visit.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute/Visit.php
new file mode 100644
index 000000000000..a863ea8092cb
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentRoute/Visit.php
@@ -0,0 +1,433 @@
+google.maps.routeoptimization.v1.ShipmentRoute.Visit
+ */
+class Visit extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Index of the `shipments` field in the source
+ * [ShipmentModel][google.maps.routeoptimization.v1.ShipmentModel].
+ *
+ * Generated from protobuf field int32 shipment_index = 1;
+ */
+ protected $shipment_index = 0;
+ /**
+ * If true the visit corresponds to a pickup of a `Shipment`. Otherwise, it
+ * corresponds to a delivery.
+ *
+ * Generated from protobuf field bool is_pickup = 2;
+ */
+ protected $is_pickup = false;
+ /**
+ * Index of `VisitRequest` in either the pickup or delivery field of the
+ * `Shipment` (see `is_pickup`).
+ *
+ * Generated from protobuf field int32 visit_request_index = 3;
+ */
+ protected $visit_request_index = 0;
+ /**
+ * Time at which the visit starts. Note that the vehicle may arrive earlier
+ * than this at the visit location. Times are consistent with the
+ * `ShipmentModel`.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 4;
+ */
+ protected $start_time = null;
+ /**
+ * Total visit load demand as the sum of the shipment and the visit request
+ * `load_demands`. The values are negative if the visit is a delivery.
+ * Demands are reported for the same types as the
+ * [Transition.loads][google.maps.routeoptimization.v1.ShipmentRoute.Transition]
+ * (see this field).
+ *
+ * Generated from protobuf field map load_demands = 11;
+ */
+ private $load_demands;
+ /**
+ * Extra detour time due to the shipments visited on the route before the
+ * visit and to the potential waiting time induced by time windows.
+ * If the visit is a delivery, the detour is computed from the corresponding
+ * pickup visit and is equal to:
+ * ```
+ * start_time(delivery) - start_time(pickup)
+ * - (duration(pickup) + travel duration from the pickup location
+ * to the delivery location).
+ * ```
+ * Otherwise, it is computed from the vehicle `start_location` and is equal
+ * to:
+ * ```
+ * start_time - vehicle_start_time - travel duration from
+ * the vehicle's `start_location` to the visit.
+ * ```
+ *
+ * Generated from protobuf field .google.protobuf.Duration detour = 6;
+ */
+ protected $detour = null;
+ /**
+ * Copy of the corresponding `Shipment.label`, if specified in the
+ * `Shipment`.
+ *
+ * Generated from protobuf field string shipment_label = 7;
+ */
+ protected $shipment_label = '';
+ /**
+ * Copy of the corresponding
+ * [VisitRequest.label][google.maps.routeoptimization.v1.Shipment.VisitRequest.label],
+ * if specified in the `VisitRequest`.
+ *
+ * Generated from protobuf field string visit_label = 8;
+ */
+ protected $visit_label = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $shipment_index
+ * Index of the `shipments` field in the source
+ * [ShipmentModel][google.maps.routeoptimization.v1.ShipmentModel].
+ * @type bool $is_pickup
+ * If true the visit corresponds to a pickup of a `Shipment`. Otherwise, it
+ * corresponds to a delivery.
+ * @type int $visit_request_index
+ * Index of `VisitRequest` in either the pickup or delivery field of the
+ * `Shipment` (see `is_pickup`).
+ * @type \Google\Protobuf\Timestamp $start_time
+ * Time at which the visit starts. Note that the vehicle may arrive earlier
+ * than this at the visit location. Times are consistent with the
+ * `ShipmentModel`.
+ * @type array|\Google\Protobuf\Internal\MapField $load_demands
+ * Total visit load demand as the sum of the shipment and the visit request
+ * `load_demands`. The values are negative if the visit is a delivery.
+ * Demands are reported for the same types as the
+ * [Transition.loads][google.maps.routeoptimization.v1.ShipmentRoute.Transition]
+ * (see this field).
+ * @type \Google\Protobuf\Duration $detour
+ * Extra detour time due to the shipments visited on the route before the
+ * visit and to the potential waiting time induced by time windows.
+ * If the visit is a delivery, the detour is computed from the corresponding
+ * pickup visit and is equal to:
+ * ```
+ * start_time(delivery) - start_time(pickup)
+ * - (duration(pickup) + travel duration from the pickup location
+ * to the delivery location).
+ * ```
+ * Otherwise, it is computed from the vehicle `start_location` and is equal
+ * to:
+ * ```
+ * start_time - vehicle_start_time - travel duration from
+ * the vehicle's `start_location` to the visit.
+ * ```
+ * @type string $shipment_label
+ * Copy of the corresponding `Shipment.label`, if specified in the
+ * `Shipment`.
+ * @type string $visit_label
+ * Copy of the corresponding
+ * [VisitRequest.label][google.maps.routeoptimization.v1.Shipment.VisitRequest.label],
+ * if specified in the `VisitRequest`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Index of the `shipments` field in the source
+ * [ShipmentModel][google.maps.routeoptimization.v1.ShipmentModel].
+ *
+ * Generated from protobuf field int32 shipment_index = 1;
+ * @return int
+ */
+ public function getShipmentIndex()
+ {
+ return $this->shipment_index;
+ }
+
+ /**
+ * Index of the `shipments` field in the source
+ * [ShipmentModel][google.maps.routeoptimization.v1.ShipmentModel].
+ *
+ * Generated from protobuf field int32 shipment_index = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setShipmentIndex($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->shipment_index = $var;
+
+ return $this;
+ }
+
+ /**
+ * If true the visit corresponds to a pickup of a `Shipment`. Otherwise, it
+ * corresponds to a delivery.
+ *
+ * Generated from protobuf field bool is_pickup = 2;
+ * @return bool
+ */
+ public function getIsPickup()
+ {
+ return $this->is_pickup;
+ }
+
+ /**
+ * If true the visit corresponds to a pickup of a `Shipment`. Otherwise, it
+ * corresponds to a delivery.
+ *
+ * Generated from protobuf field bool is_pickup = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setIsPickup($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->is_pickup = $var;
+
+ return $this;
+ }
+
+ /**
+ * Index of `VisitRequest` in either the pickup or delivery field of the
+ * `Shipment` (see `is_pickup`).
+ *
+ * Generated from protobuf field int32 visit_request_index = 3;
+ * @return int
+ */
+ public function getVisitRequestIndex()
+ {
+ return $this->visit_request_index;
+ }
+
+ /**
+ * Index of `VisitRequest` in either the pickup or delivery field of the
+ * `Shipment` (see `is_pickup`).
+ *
+ * Generated from protobuf field int32 visit_request_index = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setVisitRequestIndex($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->visit_request_index = $var;
+
+ return $this;
+ }
+
+ /**
+ * Time at which the visit starts. Note that the vehicle may arrive earlier
+ * than this at the visit location. Times are consistent with the
+ * `ShipmentModel`.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 4;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getStartTime()
+ {
+ return $this->start_time;
+ }
+
+ public function hasStartTime()
+ {
+ return isset($this->start_time);
+ }
+
+ public function clearStartTime()
+ {
+ unset($this->start_time);
+ }
+
+ /**
+ * Time at which the visit starts. Note that the vehicle may arrive earlier
+ * than this at the visit location. Times are consistent with the
+ * `ShipmentModel`.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 4;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Total visit load demand as the sum of the shipment and the visit request
+ * `load_demands`. The values are negative if the visit is a delivery.
+ * Demands are reported for the same types as the
+ * [Transition.loads][google.maps.routeoptimization.v1.ShipmentRoute.Transition]
+ * (see this field).
+ *
+ * Generated from protobuf field map load_demands = 11;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLoadDemands()
+ {
+ return $this->load_demands;
+ }
+
+ /**
+ * Total visit load demand as the sum of the shipment and the visit request
+ * `load_demands`. The values are negative if the visit is a delivery.
+ * Demands are reported for the same types as the
+ * [Transition.loads][google.maps.routeoptimization.v1.ShipmentRoute.Transition]
+ * (see this field).
+ *
+ * Generated from protobuf field map load_demands = 11;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLoadDemands($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\Shipment\Load::class);
+ $this->load_demands = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Extra detour time due to the shipments visited on the route before the
+ * visit and to the potential waiting time induced by time windows.
+ * If the visit is a delivery, the detour is computed from the corresponding
+ * pickup visit and is equal to:
+ * ```
+ * start_time(delivery) - start_time(pickup)
+ * - (duration(pickup) + travel duration from the pickup location
+ * to the delivery location).
+ * ```
+ * Otherwise, it is computed from the vehicle `start_location` and is equal
+ * to:
+ * ```
+ * start_time - vehicle_start_time - travel duration from
+ * the vehicle's `start_location` to the visit.
+ * ```
+ *
+ * Generated from protobuf field .google.protobuf.Duration detour = 6;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getDetour()
+ {
+ return $this->detour;
+ }
+
+ public function hasDetour()
+ {
+ return isset($this->detour);
+ }
+
+ public function clearDetour()
+ {
+ unset($this->detour);
+ }
+
+ /**
+ * Extra detour time due to the shipments visited on the route before the
+ * visit and to the potential waiting time induced by time windows.
+ * If the visit is a delivery, the detour is computed from the corresponding
+ * pickup visit and is equal to:
+ * ```
+ * start_time(delivery) - start_time(pickup)
+ * - (duration(pickup) + travel duration from the pickup location
+ * to the delivery location).
+ * ```
+ * Otherwise, it is computed from the vehicle `start_location` and is equal
+ * to:
+ * ```
+ * start_time - vehicle_start_time - travel duration from
+ * the vehicle's `start_location` to the visit.
+ * ```
+ *
+ * Generated from protobuf field .google.protobuf.Duration detour = 6;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setDetour($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->detour = $var;
+
+ return $this;
+ }
+
+ /**
+ * Copy of the corresponding `Shipment.label`, if specified in the
+ * `Shipment`.
+ *
+ * Generated from protobuf field string shipment_label = 7;
+ * @return string
+ */
+ public function getShipmentLabel()
+ {
+ return $this->shipment_label;
+ }
+
+ /**
+ * Copy of the corresponding `Shipment.label`, if specified in the
+ * `Shipment`.
+ *
+ * Generated from protobuf field string shipment_label = 7;
+ * @param string $var
+ * @return $this
+ */
+ public function setShipmentLabel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->shipment_label = $var;
+
+ return $this;
+ }
+
+ /**
+ * Copy of the corresponding
+ * [VisitRequest.label][google.maps.routeoptimization.v1.Shipment.VisitRequest.label],
+ * if specified in the `VisitRequest`.
+ *
+ * Generated from protobuf field string visit_label = 8;
+ * @return string
+ */
+ public function getVisitLabel()
+ {
+ return $this->visit_label;
+ }
+
+ /**
+ * Copy of the corresponding
+ * [VisitRequest.label][google.maps.routeoptimization.v1.Shipment.VisitRequest.label],
+ * if specified in the `VisitRequest`.
+ *
+ * Generated from protobuf field string visit_label = 8;
+ * @param string $var
+ * @return $this
+ */
+ public function setVisitLabel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->visit_label = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Visit::class, \Google\Maps\RouteOptimization\V1\ShipmentRoute_Visit::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentTypeIncompatibility.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentTypeIncompatibility.php
new file mode 100644
index 000000000000..17d80f6ccd1d
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentTypeIncompatibility.php
@@ -0,0 +1,107 @@
+google.maps.routeoptimization.v1.ShipmentTypeIncompatibility
+ */
+class ShipmentTypeIncompatibility extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of incompatible types. Two shipments having different `shipment_types`
+ * among those listed are "incompatible".
+ *
+ * Generated from protobuf field repeated string types = 1;
+ */
+ private $types;
+ /**
+ * Mode applied to the incompatibility.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.ShipmentTypeIncompatibility.IncompatibilityMode incompatibility_mode = 2;
+ */
+ protected $incompatibility_mode = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $types
+ * List of incompatible types. Two shipments having different `shipment_types`
+ * among those listed are "incompatible".
+ * @type int $incompatibility_mode
+ * Mode applied to the incompatibility.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of incompatible types. Two shipments having different `shipment_types`
+ * among those listed are "incompatible".
+ *
+ * Generated from protobuf field repeated string types = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTypes()
+ {
+ return $this->types;
+ }
+
+ /**
+ * List of incompatible types. Two shipments having different `shipment_types`
+ * among those listed are "incompatible".
+ *
+ * Generated from protobuf field repeated string types = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTypes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->types = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Mode applied to the incompatibility.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.ShipmentTypeIncompatibility.IncompatibilityMode incompatibility_mode = 2;
+ * @return int
+ */
+ public function getIncompatibilityMode()
+ {
+ return $this->incompatibility_mode;
+ }
+
+ /**
+ * Mode applied to the incompatibility.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.ShipmentTypeIncompatibility.IncompatibilityMode incompatibility_mode = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setIncompatibilityMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\RouteOptimization\V1\ShipmentTypeIncompatibility\IncompatibilityMode::class);
+ $this->incompatibility_mode = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentTypeIncompatibility/IncompatibilityMode.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentTypeIncompatibility/IncompatibilityMode.php
new file mode 100644
index 000000000000..1b34c50ca5fa
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentTypeIncompatibility/IncompatibilityMode.php
@@ -0,0 +1,72 @@
+google.maps.routeoptimization.v1.ShipmentTypeIncompatibility.IncompatibilityMode
+ */
+class IncompatibilityMode
+{
+ /**
+ * Unspecified incompatibility mode. This value should never be used.
+ *
+ * Generated from protobuf enum INCOMPATIBILITY_MODE_UNSPECIFIED = 0;
+ */
+ const INCOMPATIBILITY_MODE_UNSPECIFIED = 0;
+ /**
+ * In this mode, two shipments with incompatible types can never share the
+ * same vehicle.
+ *
+ * Generated from protobuf enum NOT_PERFORMED_BY_SAME_VEHICLE = 1;
+ */
+ const NOT_PERFORMED_BY_SAME_VEHICLE = 1;
+ /**
+ * For two shipments with incompatible types with the
+ * `NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY` incompatibility mode:
+ * * If both are pickups only (no deliveries) or deliveries only (no
+ * pickups), they cannot share the same vehicle at all.
+ * * If one of the shipments has a delivery and the other a pickup, the two
+ * shipments can share the same vehicle iff the former shipment is
+ * delivered before the latter is picked up.
+ *
+ * Generated from protobuf enum NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY = 2;
+ */
+ const NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY = 2;
+
+ private static $valueToName = [
+ self::INCOMPATIBILITY_MODE_UNSPECIFIED => 'INCOMPATIBILITY_MODE_UNSPECIFIED',
+ self::NOT_PERFORMED_BY_SAME_VEHICLE => 'NOT_PERFORMED_BY_SAME_VEHICLE',
+ self::NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY => 'NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(IncompatibilityMode::class, \Google\Maps\RouteOptimization\V1\ShipmentTypeIncompatibility_IncompatibilityMode::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentTypeRequirement.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentTypeRequirement.php
new file mode 100644
index 000000000000..c7d8d7f847b7
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentTypeRequirement.php
@@ -0,0 +1,156 @@
+google.maps.routeoptimization.v1.ShipmentTypeRequirement
+ */
+class ShipmentTypeRequirement extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of alternative shipment types required by the
+ * `dependent_shipment_types`.
+ *
+ * Generated from protobuf field repeated string required_shipment_type_alternatives = 1;
+ */
+ private $required_shipment_type_alternatives;
+ /**
+ * All shipments with a type in the `dependent_shipment_types` field require
+ * at least one shipment of type `required_shipment_type_alternatives` to be
+ * visited on the same route.
+ * NOTE: Chains of requirements such that a `shipment_type` depends on itself
+ * are not allowed.
+ *
+ * Generated from protobuf field repeated string dependent_shipment_types = 2;
+ */
+ private $dependent_shipment_types;
+ /**
+ * Mode applied to the requirement.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.ShipmentTypeRequirement.RequirementMode requirement_mode = 3;
+ */
+ protected $requirement_mode = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $required_shipment_type_alternatives
+ * List of alternative shipment types required by the
+ * `dependent_shipment_types`.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $dependent_shipment_types
+ * All shipments with a type in the `dependent_shipment_types` field require
+ * at least one shipment of type `required_shipment_type_alternatives` to be
+ * visited on the same route.
+ * NOTE: Chains of requirements such that a `shipment_type` depends on itself
+ * are not allowed.
+ * @type int $requirement_mode
+ * Mode applied to the requirement.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of alternative shipment types required by the
+ * `dependent_shipment_types`.
+ *
+ * Generated from protobuf field repeated string required_shipment_type_alternatives = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRequiredShipmentTypeAlternatives()
+ {
+ return $this->required_shipment_type_alternatives;
+ }
+
+ /**
+ * List of alternative shipment types required by the
+ * `dependent_shipment_types`.
+ *
+ * Generated from protobuf field repeated string required_shipment_type_alternatives = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRequiredShipmentTypeAlternatives($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->required_shipment_type_alternatives = $arr;
+
+ return $this;
+ }
+
+ /**
+ * All shipments with a type in the `dependent_shipment_types` field require
+ * at least one shipment of type `required_shipment_type_alternatives` to be
+ * visited on the same route.
+ * NOTE: Chains of requirements such that a `shipment_type` depends on itself
+ * are not allowed.
+ *
+ * Generated from protobuf field repeated string dependent_shipment_types = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDependentShipmentTypes()
+ {
+ return $this->dependent_shipment_types;
+ }
+
+ /**
+ * All shipments with a type in the `dependent_shipment_types` field require
+ * at least one shipment of type `required_shipment_type_alternatives` to be
+ * visited on the same route.
+ * NOTE: Chains of requirements such that a `shipment_type` depends on itself
+ * are not allowed.
+ *
+ * Generated from protobuf field repeated string dependent_shipment_types = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDependentShipmentTypes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->dependent_shipment_types = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Mode applied to the requirement.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.ShipmentTypeRequirement.RequirementMode requirement_mode = 3;
+ * @return int
+ */
+ public function getRequirementMode()
+ {
+ return $this->requirement_mode;
+ }
+
+ /**
+ * Mode applied to the requirement.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.ShipmentTypeRequirement.RequirementMode requirement_mode = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setRequirementMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\RouteOptimization\V1\ShipmentTypeRequirement\RequirementMode::class);
+ $this->requirement_mode = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentTypeRequirement/RequirementMode.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentTypeRequirement/RequirementMode.php
new file mode 100644
index 000000000000..b25581fc1f06
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/ShipmentTypeRequirement/RequirementMode.php
@@ -0,0 +1,80 @@
+google.maps.routeoptimization.v1.ShipmentTypeRequirement.RequirementMode
+ */
+class RequirementMode
+{
+ /**
+ * Unspecified requirement mode. This value should never be used.
+ *
+ * Generated from protobuf enum REQUIREMENT_MODE_UNSPECIFIED = 0;
+ */
+ const REQUIREMENT_MODE_UNSPECIFIED = 0;
+ /**
+ * In this mode, all "dependent" shipments must share the same vehicle as at
+ * least one of their "required" shipments.
+ *
+ * Generated from protobuf enum PERFORMED_BY_SAME_VEHICLE = 1;
+ */
+ const PERFORMED_BY_SAME_VEHICLE = 1;
+ /**
+ * With the `IN_SAME_VEHICLE_AT_PICKUP_TIME` mode, all "dependent"
+ * shipments need to have at least one "required" shipment on their vehicle
+ * at the time of their pickup.
+ * A "dependent" shipment pickup must therefore have either:
+ * * A delivery-only "required" shipment delivered on the route after, or
+ * * A "required" shipment picked up on the route before it, and if the
+ * "required" shipment has a delivery, this delivery must be performed
+ * after the "dependent" shipment's pickup.
+ *
+ * Generated from protobuf enum IN_SAME_VEHICLE_AT_PICKUP_TIME = 2;
+ */
+ const IN_SAME_VEHICLE_AT_PICKUP_TIME = 2;
+ /**
+ * Same as before, except the "dependent" shipments need to have a
+ * "required" shipment on their vehicle at the time of their *delivery*.
+ *
+ * Generated from protobuf enum IN_SAME_VEHICLE_AT_DELIVERY_TIME = 3;
+ */
+ const IN_SAME_VEHICLE_AT_DELIVERY_TIME = 3;
+
+ private static $valueToName = [
+ self::REQUIREMENT_MODE_UNSPECIFIED => 'REQUIREMENT_MODE_UNSPECIFIED',
+ self::PERFORMED_BY_SAME_VEHICLE => 'PERFORMED_BY_SAME_VEHICLE',
+ self::IN_SAME_VEHICLE_AT_PICKUP_TIME => 'IN_SAME_VEHICLE_AT_PICKUP_TIME',
+ self::IN_SAME_VEHICLE_AT_DELIVERY_TIME => 'IN_SAME_VEHICLE_AT_DELIVERY_TIME',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(RequirementMode::class, \Google\Maps\RouteOptimization\V1\ShipmentTypeRequirement_RequirementMode::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/SkippedShipment.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/SkippedShipment.php
new file mode 100644
index 000000000000..451c769e8d2a
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/SkippedShipment.php
@@ -0,0 +1,157 @@
+google.maps.routeoptimization.v1.SkippedShipment
+ */
+class SkippedShipment extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The index corresponds to the index of the shipment in the source
+ * `ShipmentModel`.
+ *
+ * Generated from protobuf field int32 index = 1;
+ */
+ protected $index = 0;
+ /**
+ * Copy of the corresponding
+ * [Shipment.label][google.maps.routeoptimization.v1.Shipment.label], if
+ * specified in the `Shipment`.
+ *
+ * Generated from protobuf field string label = 2;
+ */
+ protected $label = '';
+ /**
+ * A list of reasons that explain why the shipment was skipped. See comment
+ * above `Reason`. If we are unable to understand why a shipment was skipped,
+ * reasons will not be set.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.SkippedShipment.Reason reasons = 3;
+ */
+ private $reasons;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $index
+ * The index corresponds to the index of the shipment in the source
+ * `ShipmentModel`.
+ * @type string $label
+ * Copy of the corresponding
+ * [Shipment.label][google.maps.routeoptimization.v1.Shipment.label], if
+ * specified in the `Shipment`.
+ * @type array<\Google\Maps\RouteOptimization\V1\SkippedShipment\Reason>|\Google\Protobuf\Internal\RepeatedField $reasons
+ * A list of reasons that explain why the shipment was skipped. See comment
+ * above `Reason`. If we are unable to understand why a shipment was skipped,
+ * reasons will not be set.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The index corresponds to the index of the shipment in the source
+ * `ShipmentModel`.
+ *
+ * Generated from protobuf field int32 index = 1;
+ * @return int
+ */
+ public function getIndex()
+ {
+ return $this->index;
+ }
+
+ /**
+ * The index corresponds to the index of the shipment in the source
+ * `ShipmentModel`.
+ *
+ * Generated from protobuf field int32 index = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setIndex($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->index = $var;
+
+ return $this;
+ }
+
+ /**
+ * Copy of the corresponding
+ * [Shipment.label][google.maps.routeoptimization.v1.Shipment.label], if
+ * specified in the `Shipment`.
+ *
+ * Generated from protobuf field string label = 2;
+ * @return string
+ */
+ public function getLabel()
+ {
+ return $this->label;
+ }
+
+ /**
+ * Copy of the corresponding
+ * [Shipment.label][google.maps.routeoptimization.v1.Shipment.label], if
+ * specified in the `Shipment`.
+ *
+ * Generated from protobuf field string label = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setLabel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->label = $var;
+
+ return $this;
+ }
+
+ /**
+ * A list of reasons that explain why the shipment was skipped. See comment
+ * above `Reason`. If we are unable to understand why a shipment was skipped,
+ * reasons will not be set.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.SkippedShipment.Reason reasons = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getReasons()
+ {
+ return $this->reasons;
+ }
+
+ /**
+ * A list of reasons that explain why the shipment was skipped. See comment
+ * above `Reason`. If we are unable to understand why a shipment was skipped,
+ * reasons will not be set.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.SkippedShipment.Reason reasons = 3;
+ * @param array<\Google\Maps\RouteOptimization\V1\SkippedShipment\Reason>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setReasons($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\SkippedShipment\Reason::class);
+ $this->reasons = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/SkippedShipment/Reason.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/SkippedShipment/Reason.php
new file mode 100644
index 000000000000..b764ddfda63a
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/SkippedShipment/Reason.php
@@ -0,0 +1,181 @@
+google.maps.routeoptimization.v1.SkippedShipment.Reason
+ */
+class Reason extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Refer to the comments of Code.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.SkippedShipment.Reason.Code code = 1;
+ */
+ protected $code = 0;
+ /**
+ * If the reason is related to a shipment-vehicle incompatibility, this
+ * field provides the index of one relevant vehicle.
+ *
+ * Generated from protobuf field optional int32 example_vehicle_index = 2;
+ */
+ protected $example_vehicle_index = null;
+ /**
+ * If the reason code is `DEMAND_EXCEEDS_VEHICLE_CAPACITY`, documents one
+ * capacity type that is exceeded.
+ *
+ * Generated from protobuf field string example_exceeded_capacity_type = 3;
+ */
+ protected $example_exceeded_capacity_type = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $code
+ * Refer to the comments of Code.
+ * @type int $example_vehicle_index
+ * If the reason is related to a shipment-vehicle incompatibility, this
+ * field provides the index of one relevant vehicle.
+ * @type string $example_exceeded_capacity_type
+ * If the reason code is `DEMAND_EXCEEDS_VEHICLE_CAPACITY`, documents one
+ * capacity type that is exceeded.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Refer to the comments of Code.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.SkippedShipment.Reason.Code code = 1;
+ * @return int
+ */
+ public function getCode()
+ {
+ return $this->code;
+ }
+
+ /**
+ * Refer to the comments of Code.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.SkippedShipment.Reason.Code code = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setCode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\RouteOptimization\V1\SkippedShipment\Reason\Code::class);
+ $this->code = $var;
+
+ return $this;
+ }
+
+ /**
+ * If the reason is related to a shipment-vehicle incompatibility, this
+ * field provides the index of one relevant vehicle.
+ *
+ * Generated from protobuf field optional int32 example_vehicle_index = 2;
+ * @return int
+ */
+ public function getExampleVehicleIndex()
+ {
+ return isset($this->example_vehicle_index) ? $this->example_vehicle_index : 0;
+ }
+
+ public function hasExampleVehicleIndex()
+ {
+ return isset($this->example_vehicle_index);
+ }
+
+ public function clearExampleVehicleIndex()
+ {
+ unset($this->example_vehicle_index);
+ }
+
+ /**
+ * If the reason is related to a shipment-vehicle incompatibility, this
+ * field provides the index of one relevant vehicle.
+ *
+ * Generated from protobuf field optional int32 example_vehicle_index = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setExampleVehicleIndex($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->example_vehicle_index = $var;
+
+ return $this;
+ }
+
+ /**
+ * If the reason code is `DEMAND_EXCEEDS_VEHICLE_CAPACITY`, documents one
+ * capacity type that is exceeded.
+ *
+ * Generated from protobuf field string example_exceeded_capacity_type = 3;
+ * @return string
+ */
+ public function getExampleExceededCapacityType()
+ {
+ return $this->example_exceeded_capacity_type;
+ }
+
+ /**
+ * If the reason code is `DEMAND_EXCEEDS_VEHICLE_CAPACITY`, documents one
+ * capacity type that is exceeded.
+ *
+ * Generated from protobuf field string example_exceeded_capacity_type = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setExampleExceededCapacityType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->example_exceeded_capacity_type = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Reason::class, \Google\Maps\RouteOptimization\V1\SkippedShipment_Reason::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/SkippedShipment/Reason/Code.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/SkippedShipment/Reason/Code.php
new file mode 100644
index 000000000000..28c5af490f6b
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/SkippedShipment/Reason/Code.php
@@ -0,0 +1,115 @@
+google.maps.routeoptimization.v1.SkippedShipment.Reason.Code
+ */
+class Code
+{
+ /**
+ * This should never be used.
+ *
+ * Generated from protobuf enum CODE_UNSPECIFIED = 0;
+ */
+ const CODE_UNSPECIFIED = 0;
+ /**
+ * There is no vehicle in the model making all shipments infeasible.
+ *
+ * Generated from protobuf enum NO_VEHICLE = 1;
+ */
+ const NO_VEHICLE = 1;
+ /**
+ * The demand of the shipment exceeds a vehicle's capacity for some
+ * capacity types, one of which is `example_exceeded_capacity_type`.
+ *
+ * Generated from protobuf enum DEMAND_EXCEEDS_VEHICLE_CAPACITY = 2;
+ */
+ const DEMAND_EXCEEDS_VEHICLE_CAPACITY = 2;
+ /**
+ * The minimum distance necessary to perform this shipment, i.e. from
+ * the vehicle's `start_location` to the shipment's pickup and/or delivery
+ * locations and to the vehicle's end location exceeds the vehicle's
+ * `route_distance_limit`.
+ * Note that for this computation we use the geodesic distances.
+ *
+ * Generated from protobuf enum CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT = 3;
+ */
+ const CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT = 3;
+ /**
+ * The minimum time necessary to perform this shipment, including travel
+ * time, wait time and service time exceeds the vehicle's
+ * `route_duration_limit`.
+ * Note: travel time is computed in the best-case scenario, namely as
+ * geodesic distance x 36 m/s (roughly 130 km/hour).
+ *
+ * Generated from protobuf enum CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT = 4;
+ */
+ const CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT = 4;
+ /**
+ * Same as above but we only compare minimum travel time and the
+ * vehicle's `travel_duration_limit`.
+ *
+ * Generated from protobuf enum CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT = 5;
+ */
+ const CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT = 5;
+ /**
+ * The vehicle cannot perform this shipment in the best-case scenario
+ * (see `CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT` for time
+ * computation) if it starts at its earliest start time: the total time
+ * would make the vehicle end after its latest end time.
+ *
+ * Generated from protobuf enum CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS = 6;
+ */
+ const CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS = 6;
+ /**
+ * The `allowed_vehicle_indices` field of the shipment is not empty and
+ * this vehicle does not belong to it.
+ *
+ * Generated from protobuf enum VEHICLE_NOT_ALLOWED = 7;
+ */
+ const VEHICLE_NOT_ALLOWED = 7;
+
+ private static $valueToName = [
+ self::CODE_UNSPECIFIED => 'CODE_UNSPECIFIED',
+ self::NO_VEHICLE => 'NO_VEHICLE',
+ self::DEMAND_EXCEEDS_VEHICLE_CAPACITY => 'DEMAND_EXCEEDS_VEHICLE_CAPACITY',
+ self::CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT => 'CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT',
+ self::CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT => 'CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT',
+ self::CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT => 'CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT',
+ self::CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS => 'CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS',
+ self::VEHICLE_NOT_ALLOWED => 'VEHICLE_NOT_ALLOWED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Code::class, \Google\Maps\RouteOptimization\V1\SkippedShipment_Reason_Code::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/TimeWindow.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/TimeWindow.php
new file mode 100644
index 000000000000..380dd0376f8d
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/TimeWindow.php
@@ -0,0 +1,389 @@
+google.maps.routeoptimization.v1.TimeWindow
+ */
+class TimeWindow extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The hard time window start time. If unspecified it will be set to
+ * `ShipmentModel.global_start_time`.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1;
+ */
+ protected $start_time = null;
+ /**
+ * The hard time window end time. If unspecified it will be set to
+ * `ShipmentModel.global_end_time`.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2;
+ */
+ protected $end_time = null;
+ /**
+ * The soft start time of the time window.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp soft_start_time = 3;
+ */
+ protected $soft_start_time = null;
+ /**
+ * The soft end time of the time window.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp soft_end_time = 4;
+ */
+ protected $soft_end_time = null;
+ /**
+ * A cost per hour added to other costs in the model if the event occurs
+ * before soft_start_time, computed as:
+ * ```
+ * max(0, soft_start_time - t.seconds)
+ * * cost_per_hour_before_soft_start_time / 3600,
+ * t being the time of the event.
+ * ```
+ * This cost must be positive, and the field can only be set if
+ * soft_start_time has been set.
+ *
+ * Generated from protobuf field optional double cost_per_hour_before_soft_start_time = 5;
+ */
+ protected $cost_per_hour_before_soft_start_time = null;
+ /**
+ * A cost per hour added to other costs in the model if the event occurs after
+ * `soft_end_time`, computed as:
+ * ```
+ * max(0, t.seconds - soft_end_time.seconds)
+ * * cost_per_hour_after_soft_end_time / 3600,
+ * t being the time of the event.
+ * ```
+ * This cost must be positive, and the field can only be set if
+ * `soft_end_time` has been set.
+ *
+ * Generated from protobuf field optional double cost_per_hour_after_soft_end_time = 6;
+ */
+ protected $cost_per_hour_after_soft_end_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $start_time
+ * The hard time window start time. If unspecified it will be set to
+ * `ShipmentModel.global_start_time`.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * The hard time window end time. If unspecified it will be set to
+ * `ShipmentModel.global_end_time`.
+ * @type \Google\Protobuf\Timestamp $soft_start_time
+ * The soft start time of the time window.
+ * @type \Google\Protobuf\Timestamp $soft_end_time
+ * The soft end time of the time window.
+ * @type float $cost_per_hour_before_soft_start_time
+ * A cost per hour added to other costs in the model if the event occurs
+ * before soft_start_time, computed as:
+ * ```
+ * max(0, soft_start_time - t.seconds)
+ * * cost_per_hour_before_soft_start_time / 3600,
+ * t being the time of the event.
+ * ```
+ * This cost must be positive, and the field can only be set if
+ * soft_start_time has been set.
+ * @type float $cost_per_hour_after_soft_end_time
+ * A cost per hour added to other costs in the model if the event occurs after
+ * `soft_end_time`, computed as:
+ * ```
+ * max(0, t.seconds - soft_end_time.seconds)
+ * * cost_per_hour_after_soft_end_time / 3600,
+ * t being the time of the event.
+ * ```
+ * This cost must be positive, and the field can only be set if
+ * `soft_end_time` has been set.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The hard time window start time. If unspecified it will be set to
+ * `ShipmentModel.global_start_time`.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getStartTime()
+ {
+ return $this->start_time;
+ }
+
+ public function hasStartTime()
+ {
+ return isset($this->start_time);
+ }
+
+ public function clearStartTime()
+ {
+ unset($this->start_time);
+ }
+
+ /**
+ * The hard time window start time. If unspecified it will be set to
+ * `ShipmentModel.global_start_time`.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The hard time window end time. If unspecified it will be set to
+ * `ShipmentModel.global_end_time`.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEndTime()
+ {
+ return $this->end_time;
+ }
+
+ public function hasEndTime()
+ {
+ return isset($this->end_time);
+ }
+
+ public function clearEndTime()
+ {
+ unset($this->end_time);
+ }
+
+ /**
+ * The hard time window end time. If unspecified it will be set to
+ * `ShipmentModel.global_end_time`.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The soft start time of the time window.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp soft_start_time = 3;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getSoftStartTime()
+ {
+ return $this->soft_start_time;
+ }
+
+ public function hasSoftStartTime()
+ {
+ return isset($this->soft_start_time);
+ }
+
+ public function clearSoftStartTime()
+ {
+ unset($this->soft_start_time);
+ }
+
+ /**
+ * The soft start time of the time window.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp soft_start_time = 3;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setSoftStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->soft_start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The soft end time of the time window.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp soft_end_time = 4;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getSoftEndTime()
+ {
+ return $this->soft_end_time;
+ }
+
+ public function hasSoftEndTime()
+ {
+ return isset($this->soft_end_time);
+ }
+
+ public function clearSoftEndTime()
+ {
+ unset($this->soft_end_time);
+ }
+
+ /**
+ * The soft end time of the time window.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp soft_end_time = 4;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setSoftEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->soft_end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * A cost per hour added to other costs in the model if the event occurs
+ * before soft_start_time, computed as:
+ * ```
+ * max(0, soft_start_time - t.seconds)
+ * * cost_per_hour_before_soft_start_time / 3600,
+ * t being the time of the event.
+ * ```
+ * This cost must be positive, and the field can only be set if
+ * soft_start_time has been set.
+ *
+ * Generated from protobuf field optional double cost_per_hour_before_soft_start_time = 5;
+ * @return float
+ */
+ public function getCostPerHourBeforeSoftStartTime()
+ {
+ return isset($this->cost_per_hour_before_soft_start_time) ? $this->cost_per_hour_before_soft_start_time : 0.0;
+ }
+
+ public function hasCostPerHourBeforeSoftStartTime()
+ {
+ return isset($this->cost_per_hour_before_soft_start_time);
+ }
+
+ public function clearCostPerHourBeforeSoftStartTime()
+ {
+ unset($this->cost_per_hour_before_soft_start_time);
+ }
+
+ /**
+ * A cost per hour added to other costs in the model if the event occurs
+ * before soft_start_time, computed as:
+ * ```
+ * max(0, soft_start_time - t.seconds)
+ * * cost_per_hour_before_soft_start_time / 3600,
+ * t being the time of the event.
+ * ```
+ * This cost must be positive, and the field can only be set if
+ * soft_start_time has been set.
+ *
+ * Generated from protobuf field optional double cost_per_hour_before_soft_start_time = 5;
+ * @param float $var
+ * @return $this
+ */
+ public function setCostPerHourBeforeSoftStartTime($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->cost_per_hour_before_soft_start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * A cost per hour added to other costs in the model if the event occurs after
+ * `soft_end_time`, computed as:
+ * ```
+ * max(0, t.seconds - soft_end_time.seconds)
+ * * cost_per_hour_after_soft_end_time / 3600,
+ * t being the time of the event.
+ * ```
+ * This cost must be positive, and the field can only be set if
+ * `soft_end_time` has been set.
+ *
+ * Generated from protobuf field optional double cost_per_hour_after_soft_end_time = 6;
+ * @return float
+ */
+ public function getCostPerHourAfterSoftEndTime()
+ {
+ return isset($this->cost_per_hour_after_soft_end_time) ? $this->cost_per_hour_after_soft_end_time : 0.0;
+ }
+
+ public function hasCostPerHourAfterSoftEndTime()
+ {
+ return isset($this->cost_per_hour_after_soft_end_time);
+ }
+
+ public function clearCostPerHourAfterSoftEndTime()
+ {
+ unset($this->cost_per_hour_after_soft_end_time);
+ }
+
+ /**
+ * A cost per hour added to other costs in the model if the event occurs after
+ * `soft_end_time`, computed as:
+ * ```
+ * max(0, t.seconds - soft_end_time.seconds)
+ * * cost_per_hour_after_soft_end_time / 3600,
+ * t being the time of the event.
+ * ```
+ * This cost must be positive, and the field can only be set if
+ * `soft_end_time` has been set.
+ *
+ * Generated from protobuf field optional double cost_per_hour_after_soft_end_time = 6;
+ * @param float $var
+ * @return $this
+ */
+ public function setCostPerHourAfterSoftEndTime($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->cost_per_hour_after_soft_end_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/TransitionAttributes.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/TransitionAttributes.php
new file mode 100644
index 000000000000..6201a4c661d7
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/TransitionAttributes.php
@@ -0,0 +1,412 @@
+google.maps.routeoptimization.v1.TransitionAttributes
+ */
+class TransitionAttributes extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Tags defining the set of (src->dst) transitions these attributes apply to.
+ * A source visit or vehicle start matches iff its
+ * [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags]
+ * or
+ * [Vehicle.start_tags][google.maps.routeoptimization.v1.Vehicle.start_tags]
+ * either contains `src_tag` or does not contain `excluded_src_tag` (depending
+ * on which of these two fields is non-empty).
+ *
+ * Generated from protobuf field string src_tag = 1;
+ */
+ protected $src_tag = '';
+ /**
+ * See `src_tag`. Exactly one of `src_tag` and `excluded_src_tag` must be
+ * non-empty.
+ *
+ * Generated from protobuf field string excluded_src_tag = 2;
+ */
+ protected $excluded_src_tag = '';
+ /**
+ * A destination visit or vehicle end matches iff its
+ * [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags]
+ * or [Vehicle.end_tags][google.maps.routeoptimization.v1.Vehicle.end_tags]
+ * either contains `dst_tag` or does not contain `excluded_dst_tag` (depending
+ * on which of these two fields is non-empty).
+ *
+ * Generated from protobuf field string dst_tag = 3;
+ */
+ protected $dst_tag = '';
+ /**
+ * See `dst_tag`. Exactly one of `dst_tag` and `excluded_dst_tag` must be
+ * non-empty.
+ *
+ * Generated from protobuf field string excluded_dst_tag = 4;
+ */
+ protected $excluded_dst_tag = '';
+ /**
+ * Specifies a cost for performing this transition. This is in the same unit
+ * as all other costs in the model and must not be negative. It is applied on
+ * top of all other existing costs.
+ *
+ * Generated from protobuf field double cost = 5;
+ */
+ protected $cost = 0.0;
+ /**
+ * Specifies a cost per kilometer applied to the distance traveled while
+ * performing this transition. It adds up to any
+ * [Vehicle.cost_per_kilometer][google.maps.routeoptimization.v1.Vehicle.cost_per_kilometer]
+ * specified on vehicles.
+ *
+ * Generated from protobuf field double cost_per_kilometer = 6;
+ */
+ protected $cost_per_kilometer = 0.0;
+ /**
+ * Specifies a limit on the distance traveled while performing this
+ * transition.
+ * As of 2021/06, only soft limits are supported.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.DistanceLimit distance_limit = 7;
+ */
+ protected $distance_limit = null;
+ /**
+ * Specifies a delay incurred when performing this transition.
+ * This delay always occurs *after* finishing the source visit and *before*
+ * starting the destination visit.
+ *
+ * Generated from protobuf field .google.protobuf.Duration delay = 8;
+ */
+ protected $delay = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $src_tag
+ * Tags defining the set of (src->dst) transitions these attributes apply to.
+ * A source visit or vehicle start matches iff its
+ * [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags]
+ * or
+ * [Vehicle.start_tags][google.maps.routeoptimization.v1.Vehicle.start_tags]
+ * either contains `src_tag` or does not contain `excluded_src_tag` (depending
+ * on which of these two fields is non-empty).
+ * @type string $excluded_src_tag
+ * See `src_tag`. Exactly one of `src_tag` and `excluded_src_tag` must be
+ * non-empty.
+ * @type string $dst_tag
+ * A destination visit or vehicle end matches iff its
+ * [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags]
+ * or [Vehicle.end_tags][google.maps.routeoptimization.v1.Vehicle.end_tags]
+ * either contains `dst_tag` or does not contain `excluded_dst_tag` (depending
+ * on which of these two fields is non-empty).
+ * @type string $excluded_dst_tag
+ * See `dst_tag`. Exactly one of `dst_tag` and `excluded_dst_tag` must be
+ * non-empty.
+ * @type float $cost
+ * Specifies a cost for performing this transition. This is in the same unit
+ * as all other costs in the model and must not be negative. It is applied on
+ * top of all other existing costs.
+ * @type float $cost_per_kilometer
+ * Specifies a cost per kilometer applied to the distance traveled while
+ * performing this transition. It adds up to any
+ * [Vehicle.cost_per_kilometer][google.maps.routeoptimization.v1.Vehicle.cost_per_kilometer]
+ * specified on vehicles.
+ * @type \Google\Maps\RouteOptimization\V1\DistanceLimit $distance_limit
+ * Specifies a limit on the distance traveled while performing this
+ * transition.
+ * As of 2021/06, only soft limits are supported.
+ * @type \Google\Protobuf\Duration $delay
+ * Specifies a delay incurred when performing this transition.
+ * This delay always occurs *after* finishing the source visit and *before*
+ * starting the destination visit.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Tags defining the set of (src->dst) transitions these attributes apply to.
+ * A source visit or vehicle start matches iff its
+ * [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags]
+ * or
+ * [Vehicle.start_tags][google.maps.routeoptimization.v1.Vehicle.start_tags]
+ * either contains `src_tag` or does not contain `excluded_src_tag` (depending
+ * on which of these two fields is non-empty).
+ *
+ * Generated from protobuf field string src_tag = 1;
+ * @return string
+ */
+ public function getSrcTag()
+ {
+ return $this->src_tag;
+ }
+
+ /**
+ * Tags defining the set of (src->dst) transitions these attributes apply to.
+ * A source visit or vehicle start matches iff its
+ * [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags]
+ * or
+ * [Vehicle.start_tags][google.maps.routeoptimization.v1.Vehicle.start_tags]
+ * either contains `src_tag` or does not contain `excluded_src_tag` (depending
+ * on which of these two fields is non-empty).
+ *
+ * Generated from protobuf field string src_tag = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setSrcTag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->src_tag = $var;
+
+ return $this;
+ }
+
+ /**
+ * See `src_tag`. Exactly one of `src_tag` and `excluded_src_tag` must be
+ * non-empty.
+ *
+ * Generated from protobuf field string excluded_src_tag = 2;
+ * @return string
+ */
+ public function getExcludedSrcTag()
+ {
+ return $this->excluded_src_tag;
+ }
+
+ /**
+ * See `src_tag`. Exactly one of `src_tag` and `excluded_src_tag` must be
+ * non-empty.
+ *
+ * Generated from protobuf field string excluded_src_tag = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setExcludedSrcTag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->excluded_src_tag = $var;
+
+ return $this;
+ }
+
+ /**
+ * A destination visit or vehicle end matches iff its
+ * [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags]
+ * or [Vehicle.end_tags][google.maps.routeoptimization.v1.Vehicle.end_tags]
+ * either contains `dst_tag` or does not contain `excluded_dst_tag` (depending
+ * on which of these two fields is non-empty).
+ *
+ * Generated from protobuf field string dst_tag = 3;
+ * @return string
+ */
+ public function getDstTag()
+ {
+ return $this->dst_tag;
+ }
+
+ /**
+ * A destination visit or vehicle end matches iff its
+ * [VisitRequest.tags][google.maps.routeoptimization.v1.Shipment.VisitRequest.tags]
+ * or [Vehicle.end_tags][google.maps.routeoptimization.v1.Vehicle.end_tags]
+ * either contains `dst_tag` or does not contain `excluded_dst_tag` (depending
+ * on which of these two fields is non-empty).
+ *
+ * Generated from protobuf field string dst_tag = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setDstTag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->dst_tag = $var;
+
+ return $this;
+ }
+
+ /**
+ * See `dst_tag`. Exactly one of `dst_tag` and `excluded_dst_tag` must be
+ * non-empty.
+ *
+ * Generated from protobuf field string excluded_dst_tag = 4;
+ * @return string
+ */
+ public function getExcludedDstTag()
+ {
+ return $this->excluded_dst_tag;
+ }
+
+ /**
+ * See `dst_tag`. Exactly one of `dst_tag` and `excluded_dst_tag` must be
+ * non-empty.
+ *
+ * Generated from protobuf field string excluded_dst_tag = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setExcludedDstTag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->excluded_dst_tag = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies a cost for performing this transition. This is in the same unit
+ * as all other costs in the model and must not be negative. It is applied on
+ * top of all other existing costs.
+ *
+ * Generated from protobuf field double cost = 5;
+ * @return float
+ */
+ public function getCost()
+ {
+ return $this->cost;
+ }
+
+ /**
+ * Specifies a cost for performing this transition. This is in the same unit
+ * as all other costs in the model and must not be negative. It is applied on
+ * top of all other existing costs.
+ *
+ * Generated from protobuf field double cost = 5;
+ * @param float $var
+ * @return $this
+ */
+ public function setCost($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->cost = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies a cost per kilometer applied to the distance traveled while
+ * performing this transition. It adds up to any
+ * [Vehicle.cost_per_kilometer][google.maps.routeoptimization.v1.Vehicle.cost_per_kilometer]
+ * specified on vehicles.
+ *
+ * Generated from protobuf field double cost_per_kilometer = 6;
+ * @return float
+ */
+ public function getCostPerKilometer()
+ {
+ return $this->cost_per_kilometer;
+ }
+
+ /**
+ * Specifies a cost per kilometer applied to the distance traveled while
+ * performing this transition. It adds up to any
+ * [Vehicle.cost_per_kilometer][google.maps.routeoptimization.v1.Vehicle.cost_per_kilometer]
+ * specified on vehicles.
+ *
+ * Generated from protobuf field double cost_per_kilometer = 6;
+ * @param float $var
+ * @return $this
+ */
+ public function setCostPerKilometer($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->cost_per_kilometer = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies a limit on the distance traveled while performing this
+ * transition.
+ * As of 2021/06, only soft limits are supported.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.DistanceLimit distance_limit = 7;
+ * @return \Google\Maps\RouteOptimization\V1\DistanceLimit|null
+ */
+ public function getDistanceLimit()
+ {
+ return $this->distance_limit;
+ }
+
+ public function hasDistanceLimit()
+ {
+ return isset($this->distance_limit);
+ }
+
+ public function clearDistanceLimit()
+ {
+ unset($this->distance_limit);
+ }
+
+ /**
+ * Specifies a limit on the distance traveled while performing this
+ * transition.
+ * As of 2021/06, only soft limits are supported.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.DistanceLimit distance_limit = 7;
+ * @param \Google\Maps\RouteOptimization\V1\DistanceLimit $var
+ * @return $this
+ */
+ public function setDistanceLimit($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\DistanceLimit::class);
+ $this->distance_limit = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies a delay incurred when performing this transition.
+ * This delay always occurs *after* finishing the source visit and *before*
+ * starting the destination visit.
+ *
+ * Generated from protobuf field .google.protobuf.Duration delay = 8;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getDelay()
+ {
+ return $this->delay;
+ }
+
+ public function hasDelay()
+ {
+ return isset($this->delay);
+ }
+
+ public function clearDelay()
+ {
+ unset($this->delay);
+ }
+
+ /**
+ * Specifies a delay incurred when performing this transition.
+ * This delay always occurs *after* finishing the source visit and *before*
+ * starting the destination visit.
+ *
+ * Generated from protobuf field .google.protobuf.Duration delay = 8;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setDelay($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->delay = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle.php
new file mode 100644
index 000000000000..c77ff7c216ae
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle.php
@@ -0,0 +1,1423 @@
+google.maps.routeoptimization.v1.Vehicle
+ */
+class Vehicle extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The user-defined display name of the vehicle.
+ * It can be up to 63 characters long and may use UTF-8 characters.
+ *
+ * Generated from protobuf field string display_name = 32;
+ */
+ protected $display_name = '';
+ /**
+ * The travel mode which affects the roads usable by the vehicle and its
+ * speed. See also `travel_duration_multiple`.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.TravelMode travel_mode = 1;
+ */
+ protected $travel_mode = 0;
+ /**
+ * A set of conditions to satisfy that affect the way routes are calculated
+ * for the given vehicle.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.RouteModifiers route_modifiers = 2;
+ */
+ protected $route_modifiers = null;
+ /**
+ * Geographic location where the vehicle starts before picking up any
+ * shipments. If not specified, the vehicle starts at its first pickup.
+ * If the shipment model has duration and distance matrices, `start_location`
+ * must not be specified.
+ *
+ * Generated from protobuf field .google.type.LatLng start_location = 3;
+ */
+ protected $start_location = null;
+ /**
+ * Waypoint representing a geographic location where the vehicle starts before
+ * picking up any shipments. If neither `start_waypoint` nor `start_location`
+ * is specified, the vehicle starts at its first pickup.
+ * If the shipment model has duration and distance matrices, `start_waypoint`
+ * must not be specified.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Waypoint start_waypoint = 4;
+ */
+ protected $start_waypoint = null;
+ /**
+ * Geographic location where the vehicle ends after it has completed its last
+ * `VisitRequest`. If not specified the vehicle's `ShipmentRoute` ends
+ * immediately when it completes its last `VisitRequest`.
+ * If the shipment model has duration and distance matrices, `end_location`
+ * must not be specified.
+ *
+ * Generated from protobuf field .google.type.LatLng end_location = 5;
+ */
+ protected $end_location = null;
+ /**
+ * Waypoint representing a geographic location where the vehicle ends after
+ * it has completed its last `VisitRequest`. If neither `end_waypoint` nor
+ * `end_location` is specified, the vehicle's `ShipmentRoute` ends immediately
+ * when it completes its last `VisitRequest`.
+ * If the shipment model has duration and distance matrices, `end_waypoint`
+ * must not be specified.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Waypoint end_waypoint = 6;
+ */
+ protected $end_waypoint = null;
+ /**
+ * Specifies tags attached to the start of the vehicle's route.
+ * Empty or duplicate strings are not allowed.
+ *
+ * Generated from protobuf field repeated string start_tags = 7;
+ */
+ private $start_tags;
+ /**
+ * Specifies tags attached to the end of the vehicle's route.
+ * Empty or duplicate strings are not allowed.
+ *
+ * Generated from protobuf field repeated string end_tags = 8;
+ */
+ private $end_tags;
+ /**
+ * Time windows during which the vehicle may depart its start location.
+ * They must be within the global time limits (see
+ * [ShipmentModel.global_*][google.maps.routeoptimization.v1.ShipmentModel.global_start_time]
+ * fields). If unspecified, there is no limitation besides those global time
+ * limits.
+ * Time windows belonging to the same repeated field must be disjoint, i.e. no
+ * time window can overlap with or be adjacent to another, and they must be in
+ * chronological order.
+ * `cost_per_hour_after_soft_end_time` and `soft_end_time` can only be set if
+ * there is a single time window.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.TimeWindow start_time_windows = 9;
+ */
+ private $start_time_windows;
+ /**
+ * Time windows during which the vehicle may arrive at its end location.
+ * They must be within the global time limits (see
+ * [ShipmentModel.global_*][google.maps.routeoptimization.v1.ShipmentModel.global_start_time]
+ * fields). If unspecified, there is no limitation besides those global time
+ * limits.
+ * Time windows belonging to the same repeated field must be disjoint, i.e. no
+ * time window can overlap with or be adjacent to another, and they must be in
+ * chronological order.
+ * `cost_per_hour_after_soft_end_time` and `soft_end_time` can only be set if
+ * there is a single time window.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.TimeWindow end_time_windows = 10;
+ */
+ private $end_time_windows;
+ /**
+ * Specifies a multiplicative factor that can be used to increase or decrease
+ * travel times of this vehicle. For example, setting this to 2.0 means
+ * that this vehicle is slower and has travel times that are twice what they
+ * are for standard vehicles. This multiple does not affect visit durations.
+ * It does affect cost if `cost_per_hour` or `cost_per_traveled_hour` are
+ * specified. This must be in the range [0.001, 1000.0]. If unset, the vehicle
+ * is standard, and this multiple is considered 1.0.
+ * WARNING: Travel times will be rounded to the nearest second after this
+ * multiple is applied but before performing any numerical operations, thus,
+ * a small multiple may result in a loss of precision.
+ * See also `extra_visit_duration_for_visit_type` below.
+ *
+ * Generated from protobuf field optional double travel_duration_multiple = 11;
+ */
+ protected $travel_duration_multiple = null;
+ /**
+ * Unloading policy enforced on the vehicle.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.UnloadingPolicy unloading_policy = 12;
+ */
+ protected $unloading_policy = 0;
+ /**
+ * Capacities of the vehicle (weight, volume, # of pallets for example).
+ * The keys in the map are the identifiers of the type of load, consistent
+ * with the keys of the
+ * [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands]
+ * field. If a given key is absent from this map, the corresponding capacity
+ * is considered to be limitless.
+ *
+ * Generated from protobuf field map load_limits = 30;
+ */
+ private $load_limits;
+ /**
+ * Vehicle costs: all costs add up and must be in the same unit as
+ * [Shipment.penalty_cost][google.maps.routeoptimization.v1.Shipment.penalty_cost].
+ * Cost per hour of the vehicle route. This cost is applied to the total time
+ * taken by the route, and includes travel time, waiting time, and visit time.
+ * Using `cost_per_hour` instead of just `cost_per_traveled_hour` may result
+ * in additional latency.
+ *
+ * Generated from protobuf field double cost_per_hour = 16;
+ */
+ protected $cost_per_hour = 0.0;
+ /**
+ * Cost per traveled hour of the vehicle route. This cost is applied only to
+ * travel time taken by the route (i.e., that reported in
+ * [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions]),
+ * and excludes waiting time and visit time.
+ *
+ * Generated from protobuf field double cost_per_traveled_hour = 17;
+ */
+ protected $cost_per_traveled_hour = 0.0;
+ /**
+ * Cost per kilometer of the vehicle route. This cost is applied to the
+ * distance reported in the
+ * [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions]
+ * and does not apply to any distance implicitly traveled from the
+ * `arrival_location` to the `departure_location` of a single `VisitRequest`.
+ *
+ * Generated from protobuf field double cost_per_kilometer = 18;
+ */
+ protected $cost_per_kilometer = 0.0;
+ /**
+ * Fixed cost applied if this vehicle is used to handle a shipment.
+ *
+ * Generated from protobuf field double fixed_cost = 19;
+ */
+ protected $fixed_cost = 0.0;
+ /**
+ * This field only applies to vehicles when their route does not serve any
+ * shipments. It indicates if the vehicle should be considered as used or not
+ * in this case.
+ * If true, the vehicle goes from its start to its end location even if it
+ * doesn't serve any shipments, and time and distance costs resulting from its
+ * start --> end travel are taken into account.
+ * Otherwise, it doesn't travel from its start to its end location, and no
+ * `break_rule` or delay (from `TransitionAttributes`) are scheduled for this
+ * vehicle. In this case, the vehicle's `ShipmentRoute` doesn't contain any
+ * information except for the vehicle index and label.
+ *
+ * Generated from protobuf field bool used_if_route_is_empty = 20;
+ */
+ protected $used_if_route_is_empty = false;
+ /**
+ * Limit applied to the total duration of the vehicle's route. In a given
+ * `OptimizeToursResponse`, the route duration of a vehicle is the
+ * difference between its `vehicle_end_time` and `vehicle_start_time`.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.DurationLimit route_duration_limit = 21;
+ */
+ protected $route_duration_limit = null;
+ /**
+ * Limit applied to the travel duration of the vehicle's route. In a given
+ * `OptimizeToursResponse`, the route travel duration is the sum of all its
+ * [transitions.travel_duration][google.maps.routeoptimization.v1.ShipmentRoute.Transition.travel_duration].
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.DurationLimit travel_duration_limit = 22;
+ */
+ protected $travel_duration_limit = null;
+ /**
+ * Limit applied to the total distance of the vehicle's route. In a given
+ * `OptimizeToursResponse`, the route distance is the sum of all its
+ * [transitions.travel_distance_meters][google.maps.routeoptimization.v1.ShipmentRoute.Transition.travel_distance_meters].
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.DistanceLimit route_distance_limit = 23;
+ */
+ protected $route_distance_limit = null;
+ /**
+ * Specifies a map from visit_types strings to durations. The duration is time
+ * in addition to
+ * [VisitRequest.duration][google.maps.routeoptimization.v1.Shipment.VisitRequest.duration]
+ * to be taken at visits with the specified `visit_types`. This extra visit
+ * duration adds cost if `cost_per_hour` is specified. Keys (i.e.
+ * `visit_types`) cannot be empty strings.
+ * If a visit request has multiple types, a duration will be added for each
+ * type in the map.
+ *
+ * Generated from protobuf field map extra_visit_duration_for_visit_type = 24;
+ */
+ private $extra_visit_duration_for_visit_type;
+ /**
+ * Describes the break schedule to be enforced on this vehicle.
+ * If empty, no breaks will be scheduled for this vehicle.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.BreakRule break_rule = 25;
+ */
+ protected $break_rule = null;
+ /**
+ * Specifies a label for this vehicle. This label is reported in the response
+ * as the `vehicle_label` of the corresponding
+ * [ShipmentRoute][google.maps.routeoptimization.v1.ShipmentRoute].
+ *
+ * Generated from protobuf field string label = 27;
+ */
+ protected $label = '';
+ /**
+ * If true, `used_if_route_is_empty` must be false, and this vehicle will
+ * remain unused.
+ * If a shipment is performed by an ignored vehicle in
+ * `injected_first_solution_routes`, it is skipped in the first solution but
+ * is free to be performed in the response.
+ * If a shipment is performed by an ignored vehicle in
+ * `injected_solution_constraint` and any related pickup/delivery is
+ * constrained to remain on the vehicle (i.e., not relaxed to level
+ * `RELAX_ALL_AFTER_THRESHOLD`), it is skipped in the response.
+ * If a shipment has a non-empty `allowed_vehicle_indices` field and all of
+ * the allowed vehicles are ignored, it is skipped in the response.
+ *
+ * Generated from protobuf field bool ignore = 28;
+ */
+ protected $ignore = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $display_name
+ * The user-defined display name of the vehicle.
+ * It can be up to 63 characters long and may use UTF-8 characters.
+ * @type int $travel_mode
+ * The travel mode which affects the roads usable by the vehicle and its
+ * speed. See also `travel_duration_multiple`.
+ * @type \Google\Maps\RouteOptimization\V1\RouteModifiers $route_modifiers
+ * A set of conditions to satisfy that affect the way routes are calculated
+ * for the given vehicle.
+ * @type \Google\Type\LatLng $start_location
+ * Geographic location where the vehicle starts before picking up any
+ * shipments. If not specified, the vehicle starts at its first pickup.
+ * If the shipment model has duration and distance matrices, `start_location`
+ * must not be specified.
+ * @type \Google\Maps\RouteOptimization\V1\Waypoint $start_waypoint
+ * Waypoint representing a geographic location where the vehicle starts before
+ * picking up any shipments. If neither `start_waypoint` nor `start_location`
+ * is specified, the vehicle starts at its first pickup.
+ * If the shipment model has duration and distance matrices, `start_waypoint`
+ * must not be specified.
+ * @type \Google\Type\LatLng $end_location
+ * Geographic location where the vehicle ends after it has completed its last
+ * `VisitRequest`. If not specified the vehicle's `ShipmentRoute` ends
+ * immediately when it completes its last `VisitRequest`.
+ * If the shipment model has duration and distance matrices, `end_location`
+ * must not be specified.
+ * @type \Google\Maps\RouteOptimization\V1\Waypoint $end_waypoint
+ * Waypoint representing a geographic location where the vehicle ends after
+ * it has completed its last `VisitRequest`. If neither `end_waypoint` nor
+ * `end_location` is specified, the vehicle's `ShipmentRoute` ends immediately
+ * when it completes its last `VisitRequest`.
+ * If the shipment model has duration and distance matrices, `end_waypoint`
+ * must not be specified.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $start_tags
+ * Specifies tags attached to the start of the vehicle's route.
+ * Empty or duplicate strings are not allowed.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $end_tags
+ * Specifies tags attached to the end of the vehicle's route.
+ * Empty or duplicate strings are not allowed.
+ * @type array<\Google\Maps\RouteOptimization\V1\TimeWindow>|\Google\Protobuf\Internal\RepeatedField $start_time_windows
+ * Time windows during which the vehicle may depart its start location.
+ * They must be within the global time limits (see
+ * [ShipmentModel.global_*][google.maps.routeoptimization.v1.ShipmentModel.global_start_time]
+ * fields). If unspecified, there is no limitation besides those global time
+ * limits.
+ * Time windows belonging to the same repeated field must be disjoint, i.e. no
+ * time window can overlap with or be adjacent to another, and they must be in
+ * chronological order.
+ * `cost_per_hour_after_soft_end_time` and `soft_end_time` can only be set if
+ * there is a single time window.
+ * @type array<\Google\Maps\RouteOptimization\V1\TimeWindow>|\Google\Protobuf\Internal\RepeatedField $end_time_windows
+ * Time windows during which the vehicle may arrive at its end location.
+ * They must be within the global time limits (see
+ * [ShipmentModel.global_*][google.maps.routeoptimization.v1.ShipmentModel.global_start_time]
+ * fields). If unspecified, there is no limitation besides those global time
+ * limits.
+ * Time windows belonging to the same repeated field must be disjoint, i.e. no
+ * time window can overlap with or be adjacent to another, and they must be in
+ * chronological order.
+ * `cost_per_hour_after_soft_end_time` and `soft_end_time` can only be set if
+ * there is a single time window.
+ * @type float $travel_duration_multiple
+ * Specifies a multiplicative factor that can be used to increase or decrease
+ * travel times of this vehicle. For example, setting this to 2.0 means
+ * that this vehicle is slower and has travel times that are twice what they
+ * are for standard vehicles. This multiple does not affect visit durations.
+ * It does affect cost if `cost_per_hour` or `cost_per_traveled_hour` are
+ * specified. This must be in the range [0.001, 1000.0]. If unset, the vehicle
+ * is standard, and this multiple is considered 1.0.
+ * WARNING: Travel times will be rounded to the nearest second after this
+ * multiple is applied but before performing any numerical operations, thus,
+ * a small multiple may result in a loss of precision.
+ * See also `extra_visit_duration_for_visit_type` below.
+ * @type int $unloading_policy
+ * Unloading policy enforced on the vehicle.
+ * @type array|\Google\Protobuf\Internal\MapField $load_limits
+ * Capacities of the vehicle (weight, volume, # of pallets for example).
+ * The keys in the map are the identifiers of the type of load, consistent
+ * with the keys of the
+ * [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands]
+ * field. If a given key is absent from this map, the corresponding capacity
+ * is considered to be limitless.
+ * @type float $cost_per_hour
+ * Vehicle costs: all costs add up and must be in the same unit as
+ * [Shipment.penalty_cost][google.maps.routeoptimization.v1.Shipment.penalty_cost].
+ * Cost per hour of the vehicle route. This cost is applied to the total time
+ * taken by the route, and includes travel time, waiting time, and visit time.
+ * Using `cost_per_hour` instead of just `cost_per_traveled_hour` may result
+ * in additional latency.
+ * @type float $cost_per_traveled_hour
+ * Cost per traveled hour of the vehicle route. This cost is applied only to
+ * travel time taken by the route (i.e., that reported in
+ * [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions]),
+ * and excludes waiting time and visit time.
+ * @type float $cost_per_kilometer
+ * Cost per kilometer of the vehicle route. This cost is applied to the
+ * distance reported in the
+ * [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions]
+ * and does not apply to any distance implicitly traveled from the
+ * `arrival_location` to the `departure_location` of a single `VisitRequest`.
+ * @type float $fixed_cost
+ * Fixed cost applied if this vehicle is used to handle a shipment.
+ * @type bool $used_if_route_is_empty
+ * This field only applies to vehicles when their route does not serve any
+ * shipments. It indicates if the vehicle should be considered as used or not
+ * in this case.
+ * If true, the vehicle goes from its start to its end location even if it
+ * doesn't serve any shipments, and time and distance costs resulting from its
+ * start --> end travel are taken into account.
+ * Otherwise, it doesn't travel from its start to its end location, and no
+ * `break_rule` or delay (from `TransitionAttributes`) are scheduled for this
+ * vehicle. In this case, the vehicle's `ShipmentRoute` doesn't contain any
+ * information except for the vehicle index and label.
+ * @type \Google\Maps\RouteOptimization\V1\Vehicle\DurationLimit $route_duration_limit
+ * Limit applied to the total duration of the vehicle's route. In a given
+ * `OptimizeToursResponse`, the route duration of a vehicle is the
+ * difference between its `vehicle_end_time` and `vehicle_start_time`.
+ * @type \Google\Maps\RouteOptimization\V1\Vehicle\DurationLimit $travel_duration_limit
+ * Limit applied to the travel duration of the vehicle's route. In a given
+ * `OptimizeToursResponse`, the route travel duration is the sum of all its
+ * [transitions.travel_duration][google.maps.routeoptimization.v1.ShipmentRoute.Transition.travel_duration].
+ * @type \Google\Maps\RouteOptimization\V1\DistanceLimit $route_distance_limit
+ * Limit applied to the total distance of the vehicle's route. In a given
+ * `OptimizeToursResponse`, the route distance is the sum of all its
+ * [transitions.travel_distance_meters][google.maps.routeoptimization.v1.ShipmentRoute.Transition.travel_distance_meters].
+ * @type array|\Google\Protobuf\Internal\MapField $extra_visit_duration_for_visit_type
+ * Specifies a map from visit_types strings to durations. The duration is time
+ * in addition to
+ * [VisitRequest.duration][google.maps.routeoptimization.v1.Shipment.VisitRequest.duration]
+ * to be taken at visits with the specified `visit_types`. This extra visit
+ * duration adds cost if `cost_per_hour` is specified. Keys (i.e.
+ * `visit_types`) cannot be empty strings.
+ * If a visit request has multiple types, a duration will be added for each
+ * type in the map.
+ * @type \Google\Maps\RouteOptimization\V1\BreakRule $break_rule
+ * Describes the break schedule to be enforced on this vehicle.
+ * If empty, no breaks will be scheduled for this vehicle.
+ * @type string $label
+ * Specifies a label for this vehicle. This label is reported in the response
+ * as the `vehicle_label` of the corresponding
+ * [ShipmentRoute][google.maps.routeoptimization.v1.ShipmentRoute].
+ * @type bool $ignore
+ * If true, `used_if_route_is_empty` must be false, and this vehicle will
+ * remain unused.
+ * If a shipment is performed by an ignored vehicle in
+ * `injected_first_solution_routes`, it is skipped in the first solution but
+ * is free to be performed in the response.
+ * If a shipment is performed by an ignored vehicle in
+ * `injected_solution_constraint` and any related pickup/delivery is
+ * constrained to remain on the vehicle (i.e., not relaxed to level
+ * `RELAX_ALL_AFTER_THRESHOLD`), it is skipped in the response.
+ * If a shipment has a non-empty `allowed_vehicle_indices` field and all of
+ * the allowed vehicles are ignored, it is skipped in the response.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The user-defined display name of the vehicle.
+ * It can be up to 63 characters long and may use UTF-8 characters.
+ *
+ * Generated from protobuf field string display_name = 32;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * The user-defined display name of the vehicle.
+ * It can be up to 63 characters long and may use UTF-8 characters.
+ *
+ * Generated from protobuf field string display_name = 32;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The travel mode which affects the roads usable by the vehicle and its
+ * speed. See also `travel_duration_multiple`.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.TravelMode travel_mode = 1;
+ * @return int
+ */
+ public function getTravelMode()
+ {
+ return $this->travel_mode;
+ }
+
+ /**
+ * The travel mode which affects the roads usable by the vehicle and its
+ * speed. See also `travel_duration_multiple`.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.TravelMode travel_mode = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setTravelMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\RouteOptimization\V1\Vehicle\TravelMode::class);
+ $this->travel_mode = $var;
+
+ return $this;
+ }
+
+ /**
+ * A set of conditions to satisfy that affect the way routes are calculated
+ * for the given vehicle.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.RouteModifiers route_modifiers = 2;
+ * @return \Google\Maps\RouteOptimization\V1\RouteModifiers|null
+ */
+ public function getRouteModifiers()
+ {
+ return $this->route_modifiers;
+ }
+
+ public function hasRouteModifiers()
+ {
+ return isset($this->route_modifiers);
+ }
+
+ public function clearRouteModifiers()
+ {
+ unset($this->route_modifiers);
+ }
+
+ /**
+ * A set of conditions to satisfy that affect the way routes are calculated
+ * for the given vehicle.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.RouteModifiers route_modifiers = 2;
+ * @param \Google\Maps\RouteOptimization\V1\RouteModifiers $var
+ * @return $this
+ */
+ public function setRouteModifiers($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\RouteModifiers::class);
+ $this->route_modifiers = $var;
+
+ return $this;
+ }
+
+ /**
+ * Geographic location where the vehicle starts before picking up any
+ * shipments. If not specified, the vehicle starts at its first pickup.
+ * If the shipment model has duration and distance matrices, `start_location`
+ * must not be specified.
+ *
+ * Generated from protobuf field .google.type.LatLng start_location = 3;
+ * @return \Google\Type\LatLng|null
+ */
+ public function getStartLocation()
+ {
+ return $this->start_location;
+ }
+
+ public function hasStartLocation()
+ {
+ return isset($this->start_location);
+ }
+
+ public function clearStartLocation()
+ {
+ unset($this->start_location);
+ }
+
+ /**
+ * Geographic location where the vehicle starts before picking up any
+ * shipments. If not specified, the vehicle starts at its first pickup.
+ * If the shipment model has duration and distance matrices, `start_location`
+ * must not be specified.
+ *
+ * Generated from protobuf field .google.type.LatLng start_location = 3;
+ * @param \Google\Type\LatLng $var
+ * @return $this
+ */
+ public function setStartLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\LatLng::class);
+ $this->start_location = $var;
+
+ return $this;
+ }
+
+ /**
+ * Waypoint representing a geographic location where the vehicle starts before
+ * picking up any shipments. If neither `start_waypoint` nor `start_location`
+ * is specified, the vehicle starts at its first pickup.
+ * If the shipment model has duration and distance matrices, `start_waypoint`
+ * must not be specified.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Waypoint start_waypoint = 4;
+ * @return \Google\Maps\RouteOptimization\V1\Waypoint|null
+ */
+ public function getStartWaypoint()
+ {
+ return $this->start_waypoint;
+ }
+
+ public function hasStartWaypoint()
+ {
+ return isset($this->start_waypoint);
+ }
+
+ public function clearStartWaypoint()
+ {
+ unset($this->start_waypoint);
+ }
+
+ /**
+ * Waypoint representing a geographic location where the vehicle starts before
+ * picking up any shipments. If neither `start_waypoint` nor `start_location`
+ * is specified, the vehicle starts at its first pickup.
+ * If the shipment model has duration and distance matrices, `start_waypoint`
+ * must not be specified.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Waypoint start_waypoint = 4;
+ * @param \Google\Maps\RouteOptimization\V1\Waypoint $var
+ * @return $this
+ */
+ public function setStartWaypoint($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\Waypoint::class);
+ $this->start_waypoint = $var;
+
+ return $this;
+ }
+
+ /**
+ * Geographic location where the vehicle ends after it has completed its last
+ * `VisitRequest`. If not specified the vehicle's `ShipmentRoute` ends
+ * immediately when it completes its last `VisitRequest`.
+ * If the shipment model has duration and distance matrices, `end_location`
+ * must not be specified.
+ *
+ * Generated from protobuf field .google.type.LatLng end_location = 5;
+ * @return \Google\Type\LatLng|null
+ */
+ public function getEndLocation()
+ {
+ return $this->end_location;
+ }
+
+ public function hasEndLocation()
+ {
+ return isset($this->end_location);
+ }
+
+ public function clearEndLocation()
+ {
+ unset($this->end_location);
+ }
+
+ /**
+ * Geographic location where the vehicle ends after it has completed its last
+ * `VisitRequest`. If not specified the vehicle's `ShipmentRoute` ends
+ * immediately when it completes its last `VisitRequest`.
+ * If the shipment model has duration and distance matrices, `end_location`
+ * must not be specified.
+ *
+ * Generated from protobuf field .google.type.LatLng end_location = 5;
+ * @param \Google\Type\LatLng $var
+ * @return $this
+ */
+ public function setEndLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\LatLng::class);
+ $this->end_location = $var;
+
+ return $this;
+ }
+
+ /**
+ * Waypoint representing a geographic location where the vehicle ends after
+ * it has completed its last `VisitRequest`. If neither `end_waypoint` nor
+ * `end_location` is specified, the vehicle's `ShipmentRoute` ends immediately
+ * when it completes its last `VisitRequest`.
+ * If the shipment model has duration and distance matrices, `end_waypoint`
+ * must not be specified.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Waypoint end_waypoint = 6;
+ * @return \Google\Maps\RouteOptimization\V1\Waypoint|null
+ */
+ public function getEndWaypoint()
+ {
+ return $this->end_waypoint;
+ }
+
+ public function hasEndWaypoint()
+ {
+ return isset($this->end_waypoint);
+ }
+
+ public function clearEndWaypoint()
+ {
+ unset($this->end_waypoint);
+ }
+
+ /**
+ * Waypoint representing a geographic location where the vehicle ends after
+ * it has completed its last `VisitRequest`. If neither `end_waypoint` nor
+ * `end_location` is specified, the vehicle's `ShipmentRoute` ends immediately
+ * when it completes its last `VisitRequest`.
+ * If the shipment model has duration and distance matrices, `end_waypoint`
+ * must not be specified.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Waypoint end_waypoint = 6;
+ * @param \Google\Maps\RouteOptimization\V1\Waypoint $var
+ * @return $this
+ */
+ public function setEndWaypoint($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\Waypoint::class);
+ $this->end_waypoint = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies tags attached to the start of the vehicle's route.
+ * Empty or duplicate strings are not allowed.
+ *
+ * Generated from protobuf field repeated string start_tags = 7;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getStartTags()
+ {
+ return $this->start_tags;
+ }
+
+ /**
+ * Specifies tags attached to the start of the vehicle's route.
+ * Empty or duplicate strings are not allowed.
+ *
+ * Generated from protobuf field repeated string start_tags = 7;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setStartTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->start_tags = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Specifies tags attached to the end of the vehicle's route.
+ * Empty or duplicate strings are not allowed.
+ *
+ * Generated from protobuf field repeated string end_tags = 8;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEndTags()
+ {
+ return $this->end_tags;
+ }
+
+ /**
+ * Specifies tags attached to the end of the vehicle's route.
+ * Empty or duplicate strings are not allowed.
+ *
+ * Generated from protobuf field repeated string end_tags = 8;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEndTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->end_tags = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Time windows during which the vehicle may depart its start location.
+ * They must be within the global time limits (see
+ * [ShipmentModel.global_*][google.maps.routeoptimization.v1.ShipmentModel.global_start_time]
+ * fields). If unspecified, there is no limitation besides those global time
+ * limits.
+ * Time windows belonging to the same repeated field must be disjoint, i.e. no
+ * time window can overlap with or be adjacent to another, and they must be in
+ * chronological order.
+ * `cost_per_hour_after_soft_end_time` and `soft_end_time` can only be set if
+ * there is a single time window.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.TimeWindow start_time_windows = 9;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getStartTimeWindows()
+ {
+ return $this->start_time_windows;
+ }
+
+ /**
+ * Time windows during which the vehicle may depart its start location.
+ * They must be within the global time limits (see
+ * [ShipmentModel.global_*][google.maps.routeoptimization.v1.ShipmentModel.global_start_time]
+ * fields). If unspecified, there is no limitation besides those global time
+ * limits.
+ * Time windows belonging to the same repeated field must be disjoint, i.e. no
+ * time window can overlap with or be adjacent to another, and they must be in
+ * chronological order.
+ * `cost_per_hour_after_soft_end_time` and `soft_end_time` can only be set if
+ * there is a single time window.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.TimeWindow start_time_windows = 9;
+ * @param array<\Google\Maps\RouteOptimization\V1\TimeWindow>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setStartTimeWindows($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\TimeWindow::class);
+ $this->start_time_windows = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Time windows during which the vehicle may arrive at its end location.
+ * They must be within the global time limits (see
+ * [ShipmentModel.global_*][google.maps.routeoptimization.v1.ShipmentModel.global_start_time]
+ * fields). If unspecified, there is no limitation besides those global time
+ * limits.
+ * Time windows belonging to the same repeated field must be disjoint, i.e. no
+ * time window can overlap with or be adjacent to another, and they must be in
+ * chronological order.
+ * `cost_per_hour_after_soft_end_time` and `soft_end_time` can only be set if
+ * there is a single time window.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.TimeWindow end_time_windows = 10;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEndTimeWindows()
+ {
+ return $this->end_time_windows;
+ }
+
+ /**
+ * Time windows during which the vehicle may arrive at its end location.
+ * They must be within the global time limits (see
+ * [ShipmentModel.global_*][google.maps.routeoptimization.v1.ShipmentModel.global_start_time]
+ * fields). If unspecified, there is no limitation besides those global time
+ * limits.
+ * Time windows belonging to the same repeated field must be disjoint, i.e. no
+ * time window can overlap with or be adjacent to another, and they must be in
+ * chronological order.
+ * `cost_per_hour_after_soft_end_time` and `soft_end_time` can only be set if
+ * there is a single time window.
+ *
+ * Generated from protobuf field repeated .google.maps.routeoptimization.v1.TimeWindow end_time_windows = 10;
+ * @param array<\Google\Maps\RouteOptimization\V1\TimeWindow>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEndTimeWindows($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\TimeWindow::class);
+ $this->end_time_windows = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Specifies a multiplicative factor that can be used to increase or decrease
+ * travel times of this vehicle. For example, setting this to 2.0 means
+ * that this vehicle is slower and has travel times that are twice what they
+ * are for standard vehicles. This multiple does not affect visit durations.
+ * It does affect cost if `cost_per_hour` or `cost_per_traveled_hour` are
+ * specified. This must be in the range [0.001, 1000.0]. If unset, the vehicle
+ * is standard, and this multiple is considered 1.0.
+ * WARNING: Travel times will be rounded to the nearest second after this
+ * multiple is applied but before performing any numerical operations, thus,
+ * a small multiple may result in a loss of precision.
+ * See also `extra_visit_duration_for_visit_type` below.
+ *
+ * Generated from protobuf field optional double travel_duration_multiple = 11;
+ * @return float
+ */
+ public function getTravelDurationMultiple()
+ {
+ return isset($this->travel_duration_multiple) ? $this->travel_duration_multiple : 0.0;
+ }
+
+ public function hasTravelDurationMultiple()
+ {
+ return isset($this->travel_duration_multiple);
+ }
+
+ public function clearTravelDurationMultiple()
+ {
+ unset($this->travel_duration_multiple);
+ }
+
+ /**
+ * Specifies a multiplicative factor that can be used to increase or decrease
+ * travel times of this vehicle. For example, setting this to 2.0 means
+ * that this vehicle is slower and has travel times that are twice what they
+ * are for standard vehicles. This multiple does not affect visit durations.
+ * It does affect cost if `cost_per_hour` or `cost_per_traveled_hour` are
+ * specified. This must be in the range [0.001, 1000.0]. If unset, the vehicle
+ * is standard, and this multiple is considered 1.0.
+ * WARNING: Travel times will be rounded to the nearest second after this
+ * multiple is applied but before performing any numerical operations, thus,
+ * a small multiple may result in a loss of precision.
+ * See also `extra_visit_duration_for_visit_type` below.
+ *
+ * Generated from protobuf field optional double travel_duration_multiple = 11;
+ * @param float $var
+ * @return $this
+ */
+ public function setTravelDurationMultiple($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->travel_duration_multiple = $var;
+
+ return $this;
+ }
+
+ /**
+ * Unloading policy enforced on the vehicle.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.UnloadingPolicy unloading_policy = 12;
+ * @return int
+ */
+ public function getUnloadingPolicy()
+ {
+ return $this->unloading_policy;
+ }
+
+ /**
+ * Unloading policy enforced on the vehicle.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.UnloadingPolicy unloading_policy = 12;
+ * @param int $var
+ * @return $this
+ */
+ public function setUnloadingPolicy($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Maps\RouteOptimization\V1\Vehicle\UnloadingPolicy::class);
+ $this->unloading_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Capacities of the vehicle (weight, volume, # of pallets for example).
+ * The keys in the map are the identifiers of the type of load, consistent
+ * with the keys of the
+ * [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands]
+ * field. If a given key is absent from this map, the corresponding capacity
+ * is considered to be limitless.
+ *
+ * Generated from protobuf field map load_limits = 30;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLoadLimits()
+ {
+ return $this->load_limits;
+ }
+
+ /**
+ * Capacities of the vehicle (weight, volume, # of pallets for example).
+ * The keys in the map are the identifiers of the type of load, consistent
+ * with the keys of the
+ * [Shipment.load_demands][google.maps.routeoptimization.v1.Shipment.load_demands]
+ * field. If a given key is absent from this map, the corresponding capacity
+ * is considered to be limitless.
+ *
+ * Generated from protobuf field map load_limits = 30;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLoadLimits($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Maps\RouteOptimization\V1\Vehicle\LoadLimit::class);
+ $this->load_limits = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Vehicle costs: all costs add up and must be in the same unit as
+ * [Shipment.penalty_cost][google.maps.routeoptimization.v1.Shipment.penalty_cost].
+ * Cost per hour of the vehicle route. This cost is applied to the total time
+ * taken by the route, and includes travel time, waiting time, and visit time.
+ * Using `cost_per_hour` instead of just `cost_per_traveled_hour` may result
+ * in additional latency.
+ *
+ * Generated from protobuf field double cost_per_hour = 16;
+ * @return float
+ */
+ public function getCostPerHour()
+ {
+ return $this->cost_per_hour;
+ }
+
+ /**
+ * Vehicle costs: all costs add up and must be in the same unit as
+ * [Shipment.penalty_cost][google.maps.routeoptimization.v1.Shipment.penalty_cost].
+ * Cost per hour of the vehicle route. This cost is applied to the total time
+ * taken by the route, and includes travel time, waiting time, and visit time.
+ * Using `cost_per_hour` instead of just `cost_per_traveled_hour` may result
+ * in additional latency.
+ *
+ * Generated from protobuf field double cost_per_hour = 16;
+ * @param float $var
+ * @return $this
+ */
+ public function setCostPerHour($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->cost_per_hour = $var;
+
+ return $this;
+ }
+
+ /**
+ * Cost per traveled hour of the vehicle route. This cost is applied only to
+ * travel time taken by the route (i.e., that reported in
+ * [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions]),
+ * and excludes waiting time and visit time.
+ *
+ * Generated from protobuf field double cost_per_traveled_hour = 17;
+ * @return float
+ */
+ public function getCostPerTraveledHour()
+ {
+ return $this->cost_per_traveled_hour;
+ }
+
+ /**
+ * Cost per traveled hour of the vehicle route. This cost is applied only to
+ * travel time taken by the route (i.e., that reported in
+ * [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions]),
+ * and excludes waiting time and visit time.
+ *
+ * Generated from protobuf field double cost_per_traveled_hour = 17;
+ * @param float $var
+ * @return $this
+ */
+ public function setCostPerTraveledHour($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->cost_per_traveled_hour = $var;
+
+ return $this;
+ }
+
+ /**
+ * Cost per kilometer of the vehicle route. This cost is applied to the
+ * distance reported in the
+ * [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions]
+ * and does not apply to any distance implicitly traveled from the
+ * `arrival_location` to the `departure_location` of a single `VisitRequest`.
+ *
+ * Generated from protobuf field double cost_per_kilometer = 18;
+ * @return float
+ */
+ public function getCostPerKilometer()
+ {
+ return $this->cost_per_kilometer;
+ }
+
+ /**
+ * Cost per kilometer of the vehicle route. This cost is applied to the
+ * distance reported in the
+ * [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions]
+ * and does not apply to any distance implicitly traveled from the
+ * `arrival_location` to the `departure_location` of a single `VisitRequest`.
+ *
+ * Generated from protobuf field double cost_per_kilometer = 18;
+ * @param float $var
+ * @return $this
+ */
+ public function setCostPerKilometer($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->cost_per_kilometer = $var;
+
+ return $this;
+ }
+
+ /**
+ * Fixed cost applied if this vehicle is used to handle a shipment.
+ *
+ * Generated from protobuf field double fixed_cost = 19;
+ * @return float
+ */
+ public function getFixedCost()
+ {
+ return $this->fixed_cost;
+ }
+
+ /**
+ * Fixed cost applied if this vehicle is used to handle a shipment.
+ *
+ * Generated from protobuf field double fixed_cost = 19;
+ * @param float $var
+ * @return $this
+ */
+ public function setFixedCost($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->fixed_cost = $var;
+
+ return $this;
+ }
+
+ /**
+ * This field only applies to vehicles when their route does not serve any
+ * shipments. It indicates if the vehicle should be considered as used or not
+ * in this case.
+ * If true, the vehicle goes from its start to its end location even if it
+ * doesn't serve any shipments, and time and distance costs resulting from its
+ * start --> end travel are taken into account.
+ * Otherwise, it doesn't travel from its start to its end location, and no
+ * `break_rule` or delay (from `TransitionAttributes`) are scheduled for this
+ * vehicle. In this case, the vehicle's `ShipmentRoute` doesn't contain any
+ * information except for the vehicle index and label.
+ *
+ * Generated from protobuf field bool used_if_route_is_empty = 20;
+ * @return bool
+ */
+ public function getUsedIfRouteIsEmpty()
+ {
+ return $this->used_if_route_is_empty;
+ }
+
+ /**
+ * This field only applies to vehicles when their route does not serve any
+ * shipments. It indicates if the vehicle should be considered as used or not
+ * in this case.
+ * If true, the vehicle goes from its start to its end location even if it
+ * doesn't serve any shipments, and time and distance costs resulting from its
+ * start --> end travel are taken into account.
+ * Otherwise, it doesn't travel from its start to its end location, and no
+ * `break_rule` or delay (from `TransitionAttributes`) are scheduled for this
+ * vehicle. In this case, the vehicle's `ShipmentRoute` doesn't contain any
+ * information except for the vehicle index and label.
+ *
+ * Generated from protobuf field bool used_if_route_is_empty = 20;
+ * @param bool $var
+ * @return $this
+ */
+ public function setUsedIfRouteIsEmpty($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->used_if_route_is_empty = $var;
+
+ return $this;
+ }
+
+ /**
+ * Limit applied to the total duration of the vehicle's route. In a given
+ * `OptimizeToursResponse`, the route duration of a vehicle is the
+ * difference between its `vehicle_end_time` and `vehicle_start_time`.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.DurationLimit route_duration_limit = 21;
+ * @return \Google\Maps\RouteOptimization\V1\Vehicle\DurationLimit|null
+ */
+ public function getRouteDurationLimit()
+ {
+ return $this->route_duration_limit;
+ }
+
+ public function hasRouteDurationLimit()
+ {
+ return isset($this->route_duration_limit);
+ }
+
+ public function clearRouteDurationLimit()
+ {
+ unset($this->route_duration_limit);
+ }
+
+ /**
+ * Limit applied to the total duration of the vehicle's route. In a given
+ * `OptimizeToursResponse`, the route duration of a vehicle is the
+ * difference between its `vehicle_end_time` and `vehicle_start_time`.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.DurationLimit route_duration_limit = 21;
+ * @param \Google\Maps\RouteOptimization\V1\Vehicle\DurationLimit $var
+ * @return $this
+ */
+ public function setRouteDurationLimit($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\Vehicle\DurationLimit::class);
+ $this->route_duration_limit = $var;
+
+ return $this;
+ }
+
+ /**
+ * Limit applied to the travel duration of the vehicle's route. In a given
+ * `OptimizeToursResponse`, the route travel duration is the sum of all its
+ * [transitions.travel_duration][google.maps.routeoptimization.v1.ShipmentRoute.Transition.travel_duration].
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.DurationLimit travel_duration_limit = 22;
+ * @return \Google\Maps\RouteOptimization\V1\Vehicle\DurationLimit|null
+ */
+ public function getTravelDurationLimit()
+ {
+ return $this->travel_duration_limit;
+ }
+
+ public function hasTravelDurationLimit()
+ {
+ return isset($this->travel_duration_limit);
+ }
+
+ public function clearTravelDurationLimit()
+ {
+ unset($this->travel_duration_limit);
+ }
+
+ /**
+ * Limit applied to the travel duration of the vehicle's route. In a given
+ * `OptimizeToursResponse`, the route travel duration is the sum of all its
+ * [transitions.travel_duration][google.maps.routeoptimization.v1.ShipmentRoute.Transition.travel_duration].
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.DurationLimit travel_duration_limit = 22;
+ * @param \Google\Maps\RouteOptimization\V1\Vehicle\DurationLimit $var
+ * @return $this
+ */
+ public function setTravelDurationLimit($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\Vehicle\DurationLimit::class);
+ $this->travel_duration_limit = $var;
+
+ return $this;
+ }
+
+ /**
+ * Limit applied to the total distance of the vehicle's route. In a given
+ * `OptimizeToursResponse`, the route distance is the sum of all its
+ * [transitions.travel_distance_meters][google.maps.routeoptimization.v1.ShipmentRoute.Transition.travel_distance_meters].
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.DistanceLimit route_distance_limit = 23;
+ * @return \Google\Maps\RouteOptimization\V1\DistanceLimit|null
+ */
+ public function getRouteDistanceLimit()
+ {
+ return $this->route_distance_limit;
+ }
+
+ public function hasRouteDistanceLimit()
+ {
+ return isset($this->route_distance_limit);
+ }
+
+ public function clearRouteDistanceLimit()
+ {
+ unset($this->route_distance_limit);
+ }
+
+ /**
+ * Limit applied to the total distance of the vehicle's route. In a given
+ * `OptimizeToursResponse`, the route distance is the sum of all its
+ * [transitions.travel_distance_meters][google.maps.routeoptimization.v1.ShipmentRoute.Transition.travel_distance_meters].
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.DistanceLimit route_distance_limit = 23;
+ * @param \Google\Maps\RouteOptimization\V1\DistanceLimit $var
+ * @return $this
+ */
+ public function setRouteDistanceLimit($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\DistanceLimit::class);
+ $this->route_distance_limit = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies a map from visit_types strings to durations. The duration is time
+ * in addition to
+ * [VisitRequest.duration][google.maps.routeoptimization.v1.Shipment.VisitRequest.duration]
+ * to be taken at visits with the specified `visit_types`. This extra visit
+ * duration adds cost if `cost_per_hour` is specified. Keys (i.e.
+ * `visit_types`) cannot be empty strings.
+ * If a visit request has multiple types, a duration will be added for each
+ * type in the map.
+ *
+ * Generated from protobuf field map extra_visit_duration_for_visit_type = 24;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getExtraVisitDurationForVisitType()
+ {
+ return $this->extra_visit_duration_for_visit_type;
+ }
+
+ /**
+ * Specifies a map from visit_types strings to durations. The duration is time
+ * in addition to
+ * [VisitRequest.duration][google.maps.routeoptimization.v1.Shipment.VisitRequest.duration]
+ * to be taken at visits with the specified `visit_types`. This extra visit
+ * duration adds cost if `cost_per_hour` is specified. Keys (i.e.
+ * `visit_types`) cannot be empty strings.
+ * If a visit request has multiple types, a duration will be added for each
+ * type in the map.
+ *
+ * Generated from protobuf field map extra_visit_duration_for_visit_type = 24;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setExtraVisitDurationForVisitType($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Duration::class);
+ $this->extra_visit_duration_for_visit_type = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Describes the break schedule to be enforced on this vehicle.
+ * If empty, no breaks will be scheduled for this vehicle.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.BreakRule break_rule = 25;
+ * @return \Google\Maps\RouteOptimization\V1\BreakRule|null
+ */
+ public function getBreakRule()
+ {
+ return $this->break_rule;
+ }
+
+ public function hasBreakRule()
+ {
+ return isset($this->break_rule);
+ }
+
+ public function clearBreakRule()
+ {
+ unset($this->break_rule);
+ }
+
+ /**
+ * Describes the break schedule to be enforced on this vehicle.
+ * If empty, no breaks will be scheduled for this vehicle.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.BreakRule break_rule = 25;
+ * @param \Google\Maps\RouteOptimization\V1\BreakRule $var
+ * @return $this
+ */
+ public function setBreakRule($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\BreakRule::class);
+ $this->break_rule = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies a label for this vehicle. This label is reported in the response
+ * as the `vehicle_label` of the corresponding
+ * [ShipmentRoute][google.maps.routeoptimization.v1.ShipmentRoute].
+ *
+ * Generated from protobuf field string label = 27;
+ * @return string
+ */
+ public function getLabel()
+ {
+ return $this->label;
+ }
+
+ /**
+ * Specifies a label for this vehicle. This label is reported in the response
+ * as the `vehicle_label` of the corresponding
+ * [ShipmentRoute][google.maps.routeoptimization.v1.ShipmentRoute].
+ *
+ * Generated from protobuf field string label = 27;
+ * @param string $var
+ * @return $this
+ */
+ public function setLabel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->label = $var;
+
+ return $this;
+ }
+
+ /**
+ * If true, `used_if_route_is_empty` must be false, and this vehicle will
+ * remain unused.
+ * If a shipment is performed by an ignored vehicle in
+ * `injected_first_solution_routes`, it is skipped in the first solution but
+ * is free to be performed in the response.
+ * If a shipment is performed by an ignored vehicle in
+ * `injected_solution_constraint` and any related pickup/delivery is
+ * constrained to remain on the vehicle (i.e., not relaxed to level
+ * `RELAX_ALL_AFTER_THRESHOLD`), it is skipped in the response.
+ * If a shipment has a non-empty `allowed_vehicle_indices` field and all of
+ * the allowed vehicles are ignored, it is skipped in the response.
+ *
+ * Generated from protobuf field bool ignore = 28;
+ * @return bool
+ */
+ public function getIgnore()
+ {
+ return $this->ignore;
+ }
+
+ /**
+ * If true, `used_if_route_is_empty` must be false, and this vehicle will
+ * remain unused.
+ * If a shipment is performed by an ignored vehicle in
+ * `injected_first_solution_routes`, it is skipped in the first solution but
+ * is free to be performed in the response.
+ * If a shipment is performed by an ignored vehicle in
+ * `injected_solution_constraint` and any related pickup/delivery is
+ * constrained to remain on the vehicle (i.e., not relaxed to level
+ * `RELAX_ALL_AFTER_THRESHOLD`), it is skipped in the response.
+ * If a shipment has a non-empty `allowed_vehicle_indices` field and all of
+ * the allowed vehicles are ignored, it is skipped in the response.
+ *
+ * Generated from protobuf field bool ignore = 28;
+ * @param bool $var
+ * @return $this
+ */
+ public function setIgnore($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->ignore = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle/DurationLimit.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle/DurationLimit.php
new file mode 100644
index 000000000000..75db61656a5f
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle/DurationLimit.php
@@ -0,0 +1,359 @@
+google.maps.routeoptimization.v1.Vehicle.DurationLimit
+ */
+class DurationLimit extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A hard limit constraining the duration to be at most max_duration.
+ *
+ * Generated from protobuf field .google.protobuf.Duration max_duration = 1;
+ */
+ protected $max_duration = null;
+ /**
+ * A soft limit not enforcing a maximum duration limit, but when violated
+ * makes the route incur a cost. This cost adds up to other costs defined in
+ * the model, with the same unit.
+ * If defined, `soft_max_duration` must be nonnegative. If max_duration is
+ * also defined, `soft_max_duration` must be less than max_duration.
+ *
+ * Generated from protobuf field .google.protobuf.Duration soft_max_duration = 2;
+ */
+ protected $soft_max_duration = null;
+ /**
+ * Cost per hour incurred if the `soft_max_duration` threshold is violated.
+ * The additional cost is 0 if the duration is under the threshold,
+ * otherwise the cost depends on the duration as follows:
+ * ```
+ * cost_per_hour_after_soft_max * (duration - soft_max_duration)
+ * ```
+ * The cost must be nonnegative.
+ *
+ * Generated from protobuf field optional double cost_per_hour_after_soft_max = 3;
+ */
+ protected $cost_per_hour_after_soft_max = null;
+ /**
+ * A soft limit not enforcing a maximum duration limit, but when violated
+ * makes the route incur a cost, quadratic in the duration. This cost adds
+ * up to other costs defined in the model, with the same unit.
+ * If defined, `quadratic_soft_max_duration` must be nonnegative. If
+ * `max_duration` is also defined, `quadratic_soft_max_duration` must be
+ * less than `max_duration`, and the difference must be no larger than one
+ * day:
+ * `max_duration - quadratic_soft_max_duration <= 86400 seconds`
+ *
+ * Generated from protobuf field .google.protobuf.Duration quadratic_soft_max_duration = 4;
+ */
+ protected $quadratic_soft_max_duration = null;
+ /**
+ * Cost per square hour incurred if the
+ * `quadratic_soft_max_duration` threshold is violated.
+ * The additional cost is 0 if the duration is under the threshold,
+ * otherwise the cost depends on the duration as follows:
+ * ```
+ * cost_per_square_hour_after_quadratic_soft_max *
+ * (duration - quadratic_soft_max_duration)^2
+ * ```
+ * The cost must be nonnegative.
+ *
+ * Generated from protobuf field optional double cost_per_square_hour_after_quadratic_soft_max = 5;
+ */
+ protected $cost_per_square_hour_after_quadratic_soft_max = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Duration $max_duration
+ * A hard limit constraining the duration to be at most max_duration.
+ * @type \Google\Protobuf\Duration $soft_max_duration
+ * A soft limit not enforcing a maximum duration limit, but when violated
+ * makes the route incur a cost. This cost adds up to other costs defined in
+ * the model, with the same unit.
+ * If defined, `soft_max_duration` must be nonnegative. If max_duration is
+ * also defined, `soft_max_duration` must be less than max_duration.
+ * @type float $cost_per_hour_after_soft_max
+ * Cost per hour incurred if the `soft_max_duration` threshold is violated.
+ * The additional cost is 0 if the duration is under the threshold,
+ * otherwise the cost depends on the duration as follows:
+ * ```
+ * cost_per_hour_after_soft_max * (duration - soft_max_duration)
+ * ```
+ * The cost must be nonnegative.
+ * @type \Google\Protobuf\Duration $quadratic_soft_max_duration
+ * A soft limit not enforcing a maximum duration limit, but when violated
+ * makes the route incur a cost, quadratic in the duration. This cost adds
+ * up to other costs defined in the model, with the same unit.
+ * If defined, `quadratic_soft_max_duration` must be nonnegative. If
+ * `max_duration` is also defined, `quadratic_soft_max_duration` must be
+ * less than `max_duration`, and the difference must be no larger than one
+ * day:
+ * `max_duration - quadratic_soft_max_duration <= 86400 seconds`
+ * @type float $cost_per_square_hour_after_quadratic_soft_max
+ * Cost per square hour incurred if the
+ * `quadratic_soft_max_duration` threshold is violated.
+ * The additional cost is 0 if the duration is under the threshold,
+ * otherwise the cost depends on the duration as follows:
+ * ```
+ * cost_per_square_hour_after_quadratic_soft_max *
+ * (duration - quadratic_soft_max_duration)^2
+ * ```
+ * The cost must be nonnegative.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A hard limit constraining the duration to be at most max_duration.
+ *
+ * Generated from protobuf field .google.protobuf.Duration max_duration = 1;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getMaxDuration()
+ {
+ return $this->max_duration;
+ }
+
+ public function hasMaxDuration()
+ {
+ return isset($this->max_duration);
+ }
+
+ public function clearMaxDuration()
+ {
+ unset($this->max_duration);
+ }
+
+ /**
+ * A hard limit constraining the duration to be at most max_duration.
+ *
+ * Generated from protobuf field .google.protobuf.Duration max_duration = 1;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setMaxDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->max_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * A soft limit not enforcing a maximum duration limit, but when violated
+ * makes the route incur a cost. This cost adds up to other costs defined in
+ * the model, with the same unit.
+ * If defined, `soft_max_duration` must be nonnegative. If max_duration is
+ * also defined, `soft_max_duration` must be less than max_duration.
+ *
+ * Generated from protobuf field .google.protobuf.Duration soft_max_duration = 2;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getSoftMaxDuration()
+ {
+ return $this->soft_max_duration;
+ }
+
+ public function hasSoftMaxDuration()
+ {
+ return isset($this->soft_max_duration);
+ }
+
+ public function clearSoftMaxDuration()
+ {
+ unset($this->soft_max_duration);
+ }
+
+ /**
+ * A soft limit not enforcing a maximum duration limit, but when violated
+ * makes the route incur a cost. This cost adds up to other costs defined in
+ * the model, with the same unit.
+ * If defined, `soft_max_duration` must be nonnegative. If max_duration is
+ * also defined, `soft_max_duration` must be less than max_duration.
+ *
+ * Generated from protobuf field .google.protobuf.Duration soft_max_duration = 2;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setSoftMaxDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->soft_max_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Cost per hour incurred if the `soft_max_duration` threshold is violated.
+ * The additional cost is 0 if the duration is under the threshold,
+ * otherwise the cost depends on the duration as follows:
+ * ```
+ * cost_per_hour_after_soft_max * (duration - soft_max_duration)
+ * ```
+ * The cost must be nonnegative.
+ *
+ * Generated from protobuf field optional double cost_per_hour_after_soft_max = 3;
+ * @return float
+ */
+ public function getCostPerHourAfterSoftMax()
+ {
+ return isset($this->cost_per_hour_after_soft_max) ? $this->cost_per_hour_after_soft_max : 0.0;
+ }
+
+ public function hasCostPerHourAfterSoftMax()
+ {
+ return isset($this->cost_per_hour_after_soft_max);
+ }
+
+ public function clearCostPerHourAfterSoftMax()
+ {
+ unset($this->cost_per_hour_after_soft_max);
+ }
+
+ /**
+ * Cost per hour incurred if the `soft_max_duration` threshold is violated.
+ * The additional cost is 0 if the duration is under the threshold,
+ * otherwise the cost depends on the duration as follows:
+ * ```
+ * cost_per_hour_after_soft_max * (duration - soft_max_duration)
+ * ```
+ * The cost must be nonnegative.
+ *
+ * Generated from protobuf field optional double cost_per_hour_after_soft_max = 3;
+ * @param float $var
+ * @return $this
+ */
+ public function setCostPerHourAfterSoftMax($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->cost_per_hour_after_soft_max = $var;
+
+ return $this;
+ }
+
+ /**
+ * A soft limit not enforcing a maximum duration limit, but when violated
+ * makes the route incur a cost, quadratic in the duration. This cost adds
+ * up to other costs defined in the model, with the same unit.
+ * If defined, `quadratic_soft_max_duration` must be nonnegative. If
+ * `max_duration` is also defined, `quadratic_soft_max_duration` must be
+ * less than `max_duration`, and the difference must be no larger than one
+ * day:
+ * `max_duration - quadratic_soft_max_duration <= 86400 seconds`
+ *
+ * Generated from protobuf field .google.protobuf.Duration quadratic_soft_max_duration = 4;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getQuadraticSoftMaxDuration()
+ {
+ return $this->quadratic_soft_max_duration;
+ }
+
+ public function hasQuadraticSoftMaxDuration()
+ {
+ return isset($this->quadratic_soft_max_duration);
+ }
+
+ public function clearQuadraticSoftMaxDuration()
+ {
+ unset($this->quadratic_soft_max_duration);
+ }
+
+ /**
+ * A soft limit not enforcing a maximum duration limit, but when violated
+ * makes the route incur a cost, quadratic in the duration. This cost adds
+ * up to other costs defined in the model, with the same unit.
+ * If defined, `quadratic_soft_max_duration` must be nonnegative. If
+ * `max_duration` is also defined, `quadratic_soft_max_duration` must be
+ * less than `max_duration`, and the difference must be no larger than one
+ * day:
+ * `max_duration - quadratic_soft_max_duration <= 86400 seconds`
+ *
+ * Generated from protobuf field .google.protobuf.Duration quadratic_soft_max_duration = 4;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setQuadraticSoftMaxDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->quadratic_soft_max_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Cost per square hour incurred if the
+ * `quadratic_soft_max_duration` threshold is violated.
+ * The additional cost is 0 if the duration is under the threshold,
+ * otherwise the cost depends on the duration as follows:
+ * ```
+ * cost_per_square_hour_after_quadratic_soft_max *
+ * (duration - quadratic_soft_max_duration)^2
+ * ```
+ * The cost must be nonnegative.
+ *
+ * Generated from protobuf field optional double cost_per_square_hour_after_quadratic_soft_max = 5;
+ * @return float
+ */
+ public function getCostPerSquareHourAfterQuadraticSoftMax()
+ {
+ return isset($this->cost_per_square_hour_after_quadratic_soft_max) ? $this->cost_per_square_hour_after_quadratic_soft_max : 0.0;
+ }
+
+ public function hasCostPerSquareHourAfterQuadraticSoftMax()
+ {
+ return isset($this->cost_per_square_hour_after_quadratic_soft_max);
+ }
+
+ public function clearCostPerSquareHourAfterQuadraticSoftMax()
+ {
+ unset($this->cost_per_square_hour_after_quadratic_soft_max);
+ }
+
+ /**
+ * Cost per square hour incurred if the
+ * `quadratic_soft_max_duration` threshold is violated.
+ * The additional cost is 0 if the duration is under the threshold,
+ * otherwise the cost depends on the duration as follows:
+ * ```
+ * cost_per_square_hour_after_quadratic_soft_max *
+ * (duration - quadratic_soft_max_duration)^2
+ * ```
+ * The cost must be nonnegative.
+ *
+ * Generated from protobuf field optional double cost_per_square_hour_after_quadratic_soft_max = 5;
+ * @param float $var
+ * @return $this
+ */
+ public function setCostPerSquareHourAfterQuadraticSoftMax($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->cost_per_square_hour_after_quadratic_soft_max = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(DurationLimit::class, \Google\Maps\RouteOptimization\V1\Vehicle_DurationLimit::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle/LoadLimit.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle/LoadLimit.php
new file mode 100644
index 000000000000..076beefb96f4
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle/LoadLimit.php
@@ -0,0 +1,270 @@
+google.maps.routeoptimization.v1.Vehicle.LoadLimit
+ */
+class LoadLimit extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The maximum acceptable amount of load.
+ *
+ * Generated from protobuf field optional int64 max_load = 1;
+ */
+ protected $max_load = null;
+ /**
+ * A soft limit of the load. See
+ * [cost_per_unit_above_soft_max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.cost_per_unit_above_soft_max].
+ *
+ * Generated from protobuf field int64 soft_max_load = 2;
+ */
+ protected $soft_max_load = 0;
+ /**
+ * If the load ever exceeds
+ * [soft_max_load][google.maps.routeoptimization.v1.Vehicle.LoadLimit.soft_max_load]
+ * along this vehicle's route, the following cost penalty applies (only once
+ * per vehicle): (load -
+ * [soft_max_load][google.maps.routeoptimization.v1.Vehicle.LoadLimit.soft_max_load])
+ * * [cost_per_unit_above_soft_max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.cost_per_unit_above_soft_max]. All costs
+ * add up and must be in the same unit as
+ * [Shipment.penalty_cost][google.maps.routeoptimization.v1.Shipment.penalty_cost].
+ *
+ * Generated from protobuf field double cost_per_unit_above_soft_max = 3;
+ */
+ protected $cost_per_unit_above_soft_max = 0.0;
+ /**
+ * The acceptable load interval of the vehicle at the start of the route.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval start_load_interval = 4;
+ */
+ protected $start_load_interval = null;
+ /**
+ * The acceptable load interval of the vehicle at the end of the route.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval end_load_interval = 5;
+ */
+ protected $end_load_interval = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $max_load
+ * The maximum acceptable amount of load.
+ * @type int|string $soft_max_load
+ * A soft limit of the load. See
+ * [cost_per_unit_above_soft_max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.cost_per_unit_above_soft_max].
+ * @type float $cost_per_unit_above_soft_max
+ * If the load ever exceeds
+ * [soft_max_load][google.maps.routeoptimization.v1.Vehicle.LoadLimit.soft_max_load]
+ * along this vehicle's route, the following cost penalty applies (only once
+ * per vehicle): (load -
+ * [soft_max_load][google.maps.routeoptimization.v1.Vehicle.LoadLimit.soft_max_load])
+ * * [cost_per_unit_above_soft_max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.cost_per_unit_above_soft_max]. All costs
+ * add up and must be in the same unit as
+ * [Shipment.penalty_cost][google.maps.routeoptimization.v1.Shipment.penalty_cost].
+ * @type \Google\Maps\RouteOptimization\V1\Vehicle\LoadLimit\Interval $start_load_interval
+ * The acceptable load interval of the vehicle at the start of the route.
+ * @type \Google\Maps\RouteOptimization\V1\Vehicle\LoadLimit\Interval $end_load_interval
+ * The acceptable load interval of the vehicle at the end of the route.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The maximum acceptable amount of load.
+ *
+ * Generated from protobuf field optional int64 max_load = 1;
+ * @return int|string
+ */
+ public function getMaxLoad()
+ {
+ return isset($this->max_load) ? $this->max_load : 0;
+ }
+
+ public function hasMaxLoad()
+ {
+ return isset($this->max_load);
+ }
+
+ public function clearMaxLoad()
+ {
+ unset($this->max_load);
+ }
+
+ /**
+ * The maximum acceptable amount of load.
+ *
+ * Generated from protobuf field optional int64 max_load = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setMaxLoad($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->max_load = $var;
+
+ return $this;
+ }
+
+ /**
+ * A soft limit of the load. See
+ * [cost_per_unit_above_soft_max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.cost_per_unit_above_soft_max].
+ *
+ * Generated from protobuf field int64 soft_max_load = 2;
+ * @return int|string
+ */
+ public function getSoftMaxLoad()
+ {
+ return $this->soft_max_load;
+ }
+
+ /**
+ * A soft limit of the load. See
+ * [cost_per_unit_above_soft_max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.cost_per_unit_above_soft_max].
+ *
+ * Generated from protobuf field int64 soft_max_load = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setSoftMaxLoad($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->soft_max_load = $var;
+
+ return $this;
+ }
+
+ /**
+ * If the load ever exceeds
+ * [soft_max_load][google.maps.routeoptimization.v1.Vehicle.LoadLimit.soft_max_load]
+ * along this vehicle's route, the following cost penalty applies (only once
+ * per vehicle): (load -
+ * [soft_max_load][google.maps.routeoptimization.v1.Vehicle.LoadLimit.soft_max_load])
+ * * [cost_per_unit_above_soft_max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.cost_per_unit_above_soft_max]. All costs
+ * add up and must be in the same unit as
+ * [Shipment.penalty_cost][google.maps.routeoptimization.v1.Shipment.penalty_cost].
+ *
+ * Generated from protobuf field double cost_per_unit_above_soft_max = 3;
+ * @return float
+ */
+ public function getCostPerUnitAboveSoftMax()
+ {
+ return $this->cost_per_unit_above_soft_max;
+ }
+
+ /**
+ * If the load ever exceeds
+ * [soft_max_load][google.maps.routeoptimization.v1.Vehicle.LoadLimit.soft_max_load]
+ * along this vehicle's route, the following cost penalty applies (only once
+ * per vehicle): (load -
+ * [soft_max_load][google.maps.routeoptimization.v1.Vehicle.LoadLimit.soft_max_load])
+ * * [cost_per_unit_above_soft_max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.cost_per_unit_above_soft_max]. All costs
+ * add up and must be in the same unit as
+ * [Shipment.penalty_cost][google.maps.routeoptimization.v1.Shipment.penalty_cost].
+ *
+ * Generated from protobuf field double cost_per_unit_above_soft_max = 3;
+ * @param float $var
+ * @return $this
+ */
+ public function setCostPerUnitAboveSoftMax($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->cost_per_unit_above_soft_max = $var;
+
+ return $this;
+ }
+
+ /**
+ * The acceptable load interval of the vehicle at the start of the route.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval start_load_interval = 4;
+ * @return \Google\Maps\RouteOptimization\V1\Vehicle\LoadLimit\Interval|null
+ */
+ public function getStartLoadInterval()
+ {
+ return $this->start_load_interval;
+ }
+
+ public function hasStartLoadInterval()
+ {
+ return isset($this->start_load_interval);
+ }
+
+ public function clearStartLoadInterval()
+ {
+ unset($this->start_load_interval);
+ }
+
+ /**
+ * The acceptable load interval of the vehicle at the start of the route.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval start_load_interval = 4;
+ * @param \Google\Maps\RouteOptimization\V1\Vehicle\LoadLimit\Interval $var
+ * @return $this
+ */
+ public function setStartLoadInterval($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\Vehicle\LoadLimit\Interval::class);
+ $this->start_load_interval = $var;
+
+ return $this;
+ }
+
+ /**
+ * The acceptable load interval of the vehicle at the end of the route.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval end_load_interval = 5;
+ * @return \Google\Maps\RouteOptimization\V1\Vehicle\LoadLimit\Interval|null
+ */
+ public function getEndLoadInterval()
+ {
+ return $this->end_load_interval;
+ }
+
+ public function hasEndLoadInterval()
+ {
+ return isset($this->end_load_interval);
+ }
+
+ public function clearEndLoadInterval()
+ {
+ unset($this->end_load_interval);
+ }
+
+ /**
+ * The acceptable load interval of the vehicle at the end of the route.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval end_load_interval = 5;
+ * @param \Google\Maps\RouteOptimization\V1\Vehicle\LoadLimit\Interval $var
+ * @return $this
+ */
+ public function setEndLoadInterval($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\Vehicle\LoadLimit\Interval::class);
+ $this->end_load_interval = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(LoadLimit::class, \Google\Maps\RouteOptimization\V1\Vehicle_LoadLimit::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle/LoadLimit/Interval.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle/LoadLimit/Interval.php
new file mode 100644
index 000000000000..cc4429851ef7
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle/LoadLimit/Interval.php
@@ -0,0 +1,150 @@
+google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval
+ */
+class Interval extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A minimum acceptable load. Must be ≥ 0.
+ * If they're both specified,
+ * [min][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.min]
+ * must be ≤
+ * [max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.max].
+ *
+ * Generated from protobuf field int64 min = 1;
+ */
+ protected $min = 0;
+ /**
+ * A maximum acceptable load. Must be ≥ 0. If unspecified, the maximum
+ * load is unrestricted by this message.
+ * If they're both specified,
+ * [min][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.min]
+ * must be ≤
+ * [max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.max].
+ *
+ * Generated from protobuf field optional int64 max = 2;
+ */
+ protected $max = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $min
+ * A minimum acceptable load. Must be ≥ 0.
+ * If they're both specified,
+ * [min][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.min]
+ * must be ≤
+ * [max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.max].
+ * @type int|string $max
+ * A maximum acceptable load. Must be ≥ 0. If unspecified, the maximum
+ * load is unrestricted by this message.
+ * If they're both specified,
+ * [min][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.min]
+ * must be ≤
+ * [max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.max].
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A minimum acceptable load. Must be ≥ 0.
+ * If they're both specified,
+ * [min][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.min]
+ * must be ≤
+ * [max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.max].
+ *
+ * Generated from protobuf field int64 min = 1;
+ * @return int|string
+ */
+ public function getMin()
+ {
+ return $this->min;
+ }
+
+ /**
+ * A minimum acceptable load. Must be ≥ 0.
+ * If they're both specified,
+ * [min][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.min]
+ * must be ≤
+ * [max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.max].
+ *
+ * Generated from protobuf field int64 min = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setMin($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->min = $var;
+
+ return $this;
+ }
+
+ /**
+ * A maximum acceptable load. Must be ≥ 0. If unspecified, the maximum
+ * load is unrestricted by this message.
+ * If they're both specified,
+ * [min][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.min]
+ * must be ≤
+ * [max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.max].
+ *
+ * Generated from protobuf field optional int64 max = 2;
+ * @return int|string
+ */
+ public function getMax()
+ {
+ return isset($this->max) ? $this->max : 0;
+ }
+
+ public function hasMax()
+ {
+ return isset($this->max);
+ }
+
+ public function clearMax()
+ {
+ unset($this->max);
+ }
+
+ /**
+ * A maximum acceptable load. Must be ≥ 0. If unspecified, the maximum
+ * load is unrestricted by this message.
+ * If they're both specified,
+ * [min][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.min]
+ * must be ≤
+ * [max][google.maps.routeoptimization.v1.Vehicle.LoadLimit.Interval.max].
+ *
+ * Generated from protobuf field optional int64 max = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setMax($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->max = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Interval::class, \Google\Maps\RouteOptimization\V1\Vehicle_LoadLimit_Interval::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle/TravelMode.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle/TravelMode.php
new file mode 100644
index 000000000000..29c7c3891265
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle/TravelMode.php
@@ -0,0 +1,67 @@
+google.maps.routeoptimization.v1.Vehicle.TravelMode
+ */
+class TravelMode
+{
+ /**
+ * Unspecified travel mode, equivalent to `DRIVING`.
+ *
+ * Generated from protobuf enum TRAVEL_MODE_UNSPECIFIED = 0;
+ */
+ const TRAVEL_MODE_UNSPECIFIED = 0;
+ /**
+ * Travel mode corresponding to driving directions (car, ...).
+ *
+ * Generated from protobuf enum DRIVING = 1;
+ */
+ const DRIVING = 1;
+ /**
+ * Travel mode corresponding to walking directions.
+ *
+ * Generated from protobuf enum WALKING = 2;
+ */
+ const WALKING = 2;
+
+ private static $valueToName = [
+ self::TRAVEL_MODE_UNSPECIFIED => 'TRAVEL_MODE_UNSPECIFIED',
+ self::DRIVING => 'DRIVING',
+ self::WALKING => 'WALKING',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(TravelMode::class, \Google\Maps\RouteOptimization\V1\Vehicle_TravelMode::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle/UnloadingPolicy.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle/UnloadingPolicy.php
new file mode 100644
index 000000000000..dc58c2f42b5b
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Vehicle/UnloadingPolicy.php
@@ -0,0 +1,68 @@
+google.maps.routeoptimization.v1.Vehicle.UnloadingPolicy
+ */
+class UnloadingPolicy
+{
+ /**
+ * Unspecified unloading policy; deliveries must just occur after their
+ * corresponding pickups.
+ *
+ * Generated from protobuf enum UNLOADING_POLICY_UNSPECIFIED = 0;
+ */
+ const UNLOADING_POLICY_UNSPECIFIED = 0;
+ /**
+ * Deliveries must occur in reverse order of pickups
+ *
+ * Generated from protobuf enum LAST_IN_FIRST_OUT = 1;
+ */
+ const LAST_IN_FIRST_OUT = 1;
+ /**
+ * Deliveries must occur in the same order as pickups
+ *
+ * Generated from protobuf enum FIRST_IN_FIRST_OUT = 2;
+ */
+ const FIRST_IN_FIRST_OUT = 2;
+
+ private static $valueToName = [
+ self::UNLOADING_POLICY_UNSPECIFIED => 'UNLOADING_POLICY_UNSPECIFIED',
+ self::LAST_IN_FIRST_OUT => 'LAST_IN_FIRST_OUT',
+ self::FIRST_IN_FIRST_OUT => 'FIRST_IN_FIRST_OUT',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(UnloadingPolicy::class, \Google\Maps\RouteOptimization\V1\Vehicle_UnloadingPolicy::class);
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Waypoint.php b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Waypoint.php
new file mode 100644
index 000000000000..b691d5167b2b
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/proto/src/Google/Maps/RouteOptimization/V1/Waypoint.php
@@ -0,0 +1,166 @@
+google.maps.routeoptimization.v1.Waypoint
+ */
+class Waypoint extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Indicates that the location of this waypoint is meant to have a
+ * preference for the vehicle to stop at a particular side of road. When you
+ * set this value, the route will pass through the location so that the
+ * vehicle can stop at the side of road that the location is biased towards
+ * from the center of the road. This option doesn't work for the 'WALKING'
+ * travel mode.
+ *
+ * Generated from protobuf field bool side_of_road = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $side_of_road = false;
+ protected $location_type;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Maps\RouteOptimization\V1\Location $location
+ * A point specified using geographic coordinates, including an optional
+ * heading.
+ * @type string $place_id
+ * The POI Place ID associated with the waypoint.
+ * @type bool $side_of_road
+ * Optional. Indicates that the location of this waypoint is meant to have a
+ * preference for the vehicle to stop at a particular side of road. When you
+ * set this value, the route will pass through the location so that the
+ * vehicle can stop at the side of road that the location is biased towards
+ * from the center of the road. This option doesn't work for the 'WALKING'
+ * travel mode.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Maps\Routeoptimization\V1\RouteOptimizationService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A point specified using geographic coordinates, including an optional
+ * heading.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Location location = 1;
+ * @return \Google\Maps\RouteOptimization\V1\Location|null
+ */
+ public function getLocation()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasLocation()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * A point specified using geographic coordinates, including an optional
+ * heading.
+ *
+ * Generated from protobuf field .google.maps.routeoptimization.v1.Location location = 1;
+ * @param \Google\Maps\RouteOptimization\V1\Location $var
+ * @return $this
+ */
+ public function setLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Maps\RouteOptimization\V1\Location::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * The POI Place ID associated with the waypoint.
+ *
+ * Generated from protobuf field string place_id = 2;
+ * @return string
+ */
+ public function getPlaceId()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasPlaceId()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * The POI Place ID associated with the waypoint.
+ *
+ * Generated from protobuf field string place_id = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setPlaceId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. Indicates that the location of this waypoint is meant to have a
+ * preference for the vehicle to stop at a particular side of road. When you
+ * set this value, the route will pass through the location so that the
+ * vehicle can stop at the side of road that the location is biased towards
+ * from the center of the road. This option doesn't work for the 'WALKING'
+ * travel mode.
+ *
+ * Generated from protobuf field bool side_of_road = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getSideOfRoad()
+ {
+ return $this->side_of_road;
+ }
+
+ /**
+ * Optional. Indicates that the location of this waypoint is meant to have a
+ * preference for the vehicle to stop at a particular side of road. When you
+ * set this value, the route will pass through the location so that the
+ * vehicle can stop at the side of road that the location is biased towards
+ * from the center of the road. This option doesn't work for the 'WALKING'
+ * travel mode.
+ *
+ * Generated from protobuf field bool side_of_road = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setSideOfRoad($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->side_of_road = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getLocationType()
+ {
+ return $this->whichOneof("location_type");
+ }
+
+}
+
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/samples/V1/RouteOptimizationClient/batch_optimize_tours.php b/owl-bot-staging/MapsRouteOptimization/v1/samples/V1/RouteOptimizationClient/batch_optimize_tours.php
new file mode 100644
index 000000000000..e118b4dbdf9b
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/samples/V1/RouteOptimizationClient/batch_optimize_tours.php
@@ -0,0 +1,133 @@
+setDataFormat($modelConfigsInputConfigDataFormat);
+ $modelConfigsOutputConfig = (new OutputConfig())
+ ->setDataFormat($modelConfigsOutputConfigDataFormat);
+ $asyncModelConfig = (new AsyncModelConfig())
+ ->setInputConfig($modelConfigsInputConfig)
+ ->setOutputConfig($modelConfigsOutputConfig);
+ $modelConfigs = [$asyncModelConfig,];
+ $request = (new BatchOptimizeToursRequest())
+ ->setParent($parent)
+ ->setModelConfigs($modelConfigs);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $routeOptimizationClient->batchOptimizeTours($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var BatchOptimizeToursResponse $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $parent = '[PARENT]';
+ $modelConfigsInputConfigDataFormat = DataFormat::DATA_FORMAT_UNSPECIFIED;
+ $modelConfigsOutputConfigDataFormat = DataFormat::DATA_FORMAT_UNSPECIFIED;
+
+ batch_optimize_tours_sample(
+ $parent,
+ $modelConfigsInputConfigDataFormat,
+ $modelConfigsOutputConfigDataFormat
+ );
+}
+// [END routeoptimization_v1_generated_RouteOptimization_BatchOptimizeTours_sync]
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/samples/V1/RouteOptimizationClient/optimize_tours.php b/owl-bot-staging/MapsRouteOptimization/v1/samples/V1/RouteOptimizationClient/optimize_tours.php
new file mode 100644
index 000000000000..8ad98f631377
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/samples/V1/RouteOptimizationClient/optimize_tours.php
@@ -0,0 +1,89 @@
+setParent($parent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OptimizeToursResponse $response */
+ $response = $routeOptimizationClient->optimizeTours($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $parent = '[PARENT]';
+
+ optimize_tours_sample($parent);
+}
+// [END routeoptimization_v1_generated_RouteOptimization_OptimizeTours_sync]
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/src/V1/Client/RouteOptimizationClient.php b/owl-bot-staging/MapsRouteOptimization/v1/src/V1/Client/RouteOptimizationClient.php
new file mode 100644
index 000000000000..ccb83c53a0fb
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/src/V1/Client/RouteOptimizationClient.php
@@ -0,0 +1,327 @@
+ batchOptimizeToursAsync(BatchOptimizeToursRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface optimizeToursAsync(OptimizeToursRequest $request, array $optionalArgs = [])
+ */
+final class RouteOptimizationClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ private const SERVICE_NAME = 'google.maps.routeoptimization.v1.RouteOptimization';
+
+ /**
+ * The default address of the service.
+ *
+ * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead.
+ */
+ private const SERVICE_ADDRESS = 'routeoptimization.googleapis.com';
+
+ /** The address template of the service. */
+ private const SERVICE_ADDRESS_TEMPLATE = 'routeoptimization.UNIVERSE_DOMAIN';
+
+ /** The default port of the service. */
+ private const DEFAULT_SERVICE_PORT = 443;
+
+ /** The name of the code generator, to be included in the agent header. */
+ private const CODEGEN_NAME = 'gapic';
+
+ /** The default scopes required by the service. */
+ public static $serviceScopes = [
+ 'https://www.googleapis.com/auth/cloud-platform',
+ ];
+
+ private $operationsClient;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/route_optimization_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/route_optimization_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/route_optimization_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/route_optimization_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Return an OperationsClient object with the same endpoint as $this.
+ *
+ * @return OperationsClient
+ */
+ public function getOperationsClient()
+ {
+ return $this->operationsClient;
+ }
+
+ /**
+ * Resume an existing long running operation that was previously started by a long
+ * running API method. If $methodName is not provided, or does not match a long
+ * running API method, then the operation can still be resumed, but the
+ * OperationResponse object will not deserialize the final response.
+ *
+ * @param string $operationName The name of the long running operation
+ * @param string $methodName The name of the method used to start the operation
+ *
+ * @return OperationResponse
+ */
+ public function resumeOperation($operationName, $methodName = null)
+ {
+ $options = isset($this->descriptors[$methodName]['longRunning']) ? $this->descriptors[$methodName]['longRunning'] : [];
+ $operation = new OperationResponse($operationName, $this->getOperationsClient(), $options);
+ $operation->reload();
+ return $operation;
+ }
+
+ /**
+ * Create the default operation client for the service.
+ *
+ * @param array $options ClientOptions for the client.
+ *
+ * @return OperationsClient
+ */
+ private function createOperationsClient(array $options)
+ {
+ // Unset client-specific configuration options
+ unset($options['serviceName'], $options['clientConfig'], $options['descriptorsConfigPath']);
+
+ if (isset($options['operationsClient'])) {
+ return $options['operationsClient'];
+ }
+
+ return new OperationsClient($options);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $options {
+ * Optional. Options for configuring the service API wrapper.
+ *
+ * @type string $apiEndpoint
+ * The address of the API remote host. May optionally include the port, formatted
+ * as ":". Default 'routeoptimization.googleapis.com:443'.
+ * @type string|array|FetchAuthTokenInterface|CredentialsWrapper $credentials
+ * The credentials to be used by the client to authorize API calls. This option
+ * accepts either a path to a credentials file, or a decoded credentials file as a
+ * PHP array.
+ * *Advanced usage*: In addition, this option can also accept a pre-constructed
+ * {@see \Google\Auth\FetchAuthTokenInterface} object or
+ * {@see \Google\ApiCore\CredentialsWrapper} object. Note that when one of these
+ * objects are provided, any settings in $credentialsConfig will be ignored.
+ * @type array $credentialsConfig
+ * Options used to configure credentials, including auth token caching, for the
+ * client. For a full list of supporting configuration options, see
+ * {@see \Google\ApiCore\CredentialsWrapper::build()} .
+ * @type bool $disableRetries
+ * Determines whether or not retries defined by the client configuration should be
+ * disabled. Defaults to `false`.
+ * @type string|array $clientConfig
+ * Client method configuration, including retry settings. This option can be either
+ * a path to a JSON file, or a PHP array containing the decoded JSON data. By
+ * default this settings points to the default client config file, which is
+ * provided in the resources folder.
+ * @type string|TransportInterface $transport
+ * The transport used for executing network requests. May be either the string
+ * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system.
+ * *Advanced usage*: Additionally, it is possible to pass in an already
+ * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note
+ * that when this object is provided, any settings in $transportConfig, and any
+ * $apiEndpoint setting, will be ignored.
+ * @type array $transportConfig
+ * Configuration options that will be used to construct the transport. Options for
+ * each supported transport type should be passed in a key for that transport. For
+ * example:
+ * $transportConfig = [
+ * 'grpc' => [...],
+ * 'rest' => [...],
+ * ];
+ * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and
+ * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the
+ * supported options.
+ * @type callable $clientCertSource
+ * A callable which returns the client cert as a string. This can be used to
+ * provide a certificate and private key to the transport layer for mTLS.
+ * @type false|LoggerInterface $logger
+ * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the
+ * 'GOOGLE_SDK_PHP_LOGGING' environment flag
+ * }
+ *
+ * @throws ValidationException
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ $this->operationsClient = $this->createOperationsClient($clientOptions);
+ }
+
+ /** Handles execution of the async variants for each documented method. */
+ public function __call($method, $args)
+ {
+ if (substr($method, -5) !== 'Async') {
+ trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR);
+ }
+
+ array_unshift($args, substr($method, 0, -5));
+ return call_user_func_array([$this, 'startAsyncCall'], $args);
+ }
+
+ /**
+ * Optimizes vehicle tours for one or more `OptimizeToursRequest`
+ * messages as a batch.
+ *
+ * This method is a Long Running Operation (LRO). The inputs for optimization
+ * (`OptimizeToursRequest` messages) and outputs (`OptimizeToursResponse`
+ * messages) are read from and written to Cloud Storage in user-specified
+ * format. Like the `OptimizeTours` method, each `OptimizeToursRequest`
+ * contains a `ShipmentModel` and returns an `OptimizeToursResponse`
+ * containing `ShipmentRoute` fields, which are a set of routes to be
+ * performed by vehicles minimizing the overall cost.
+ *
+ * The user can poll `operations.get` to check the status of the LRO:
+ *
+ * If the LRO `done` field is false, then at least one request is still
+ * being processed. Other requests may have completed successfully and their
+ * results are available in Cloud Storage.
+ *
+ * If the LRO's `done` field is true, then all requests have been processed.
+ * Any successfully processed requests will have their results available in
+ * Cloud Storage. Any requests that failed will not have their results
+ * available in Cloud Storage. If the LRO's `error` field is set, then it
+ * contains the error from one of the failed requests.
+ *
+ * The async variant is {@see RouteOptimizationClient::batchOptimizeToursAsync()} .
+ *
+ * @example samples/V1/RouteOptimizationClient/batch_optimize_tours.php
+ *
+ * @param BatchOptimizeToursRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function batchOptimizeTours(BatchOptimizeToursRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('BatchOptimizeTours', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Sends an `OptimizeToursRequest` containing a `ShipmentModel` and returns an
+ * `OptimizeToursResponse` containing `ShipmentRoute`s, which are a set of
+ * routes to be performed by vehicles minimizing the overall cost.
+ *
+ * A `ShipmentModel` model consists mainly of `Shipment`s that need to be
+ * carried out and `Vehicle`s that can be used to transport the `Shipment`s.
+ * The `ShipmentRoute`s assign `Shipment`s to `Vehicle`s. More specifically,
+ * they assign a series of `Visit`s to each vehicle, where a `Visit`
+ * corresponds to a `VisitRequest`, which is a pickup or delivery for a
+ * `Shipment`.
+ *
+ * The goal is to provide an assignment of `ShipmentRoute`s to `Vehicle`s that
+ * minimizes the total cost where cost has many components defined in the
+ * `ShipmentModel`.
+ *
+ * The async variant is {@see RouteOptimizationClient::optimizeToursAsync()} .
+ *
+ * @example samples/V1/RouteOptimizationClient/optimize_tours.php
+ *
+ * @param OptimizeToursRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OptimizeToursResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function optimizeTours(OptimizeToursRequest $request, array $callOptions = []): OptimizeToursResponse
+ {
+ return $this->startApiCall('OptimizeTours', $request, $callOptions)->wait();
+ }
+}
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/src/V1/gapic_metadata.json b/owl-bot-staging/MapsRouteOptimization/v1/src/V1/gapic_metadata.json
new file mode 100644
index 000000000000..71f5ea3e4f9b
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/src/V1/gapic_metadata.json
@@ -0,0 +1,28 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.maps.routeoptimization.v1",
+ "libraryPackage": "Google\\Maps\\RouteOptimization\\V1",
+ "services": {
+ "RouteOptimization": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "RouteOptimizationGapicClient",
+ "rpcs": {
+ "BatchOptimizeTours": {
+ "methods": [
+ "batchOptimizeTours"
+ ]
+ },
+ "OptimizeTours": {
+ "methods": [
+ "optimizeTours"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/src/V1/resources/route_optimization_client_config.json b/owl-bot-staging/MapsRouteOptimization/v1/src/V1/resources/route_optimization_client_config.json
new file mode 100644
index 000000000000..0e5122e35b74
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/src/V1/resources/route_optimization_client_config.json
@@ -0,0 +1,44 @@
+{
+ "interfaces": {
+ "google.maps.routeoptimization.v1.RouteOptimization": {
+ "retry_codes": {
+ "no_retry_codes": [],
+ "retry_policy_1_codes": [
+ "UNAVAILABLE"
+ ]
+ },
+ "retry_params": {
+ "no_retry_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 0,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 0,
+ "total_timeout_millis": 0
+ },
+ "retry_policy_1_params": {
+ "initial_retry_delay_millis": 1000,
+ "retry_delay_multiplier": 1.3,
+ "max_retry_delay_millis": 10000,
+ "initial_rpc_timeout_millis": 3600000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 3600000,
+ "total_timeout_millis": 3600000
+ }
+ },
+ "methods": {
+ "BatchOptimizeTours": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "OptimizeTours": {
+ "timeout_millis": 3600000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/src/V1/resources/route_optimization_descriptor_config.php b/owl-bot-staging/MapsRouteOptimization/v1/src/V1/resources/route_optimization_descriptor_config.php
new file mode 100644
index 000000000000..0e8b84155c48
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/src/V1/resources/route_optimization_descriptor_config.php
@@ -0,0 +1,59 @@
+ [
+ 'google.maps.routeoptimization.v1.RouteOptimization' => [
+ 'BatchOptimizeTours' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Maps\RouteOptimization\V1\BatchOptimizeToursResponse',
+ 'metadataReturnType' => '\Google\Maps\RouteOptimization\V1\BatchOptimizeToursMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'OptimizeTours' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Maps\RouteOptimization\V1\OptimizeToursResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/src/V1/resources/route_optimization_rest_client_config.php b/owl-bot-staging/MapsRouteOptimization/v1/src/V1/resources/route_optimization_rest_client_config.php
new file mode 100644
index 000000000000..5087b38b87fd
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/src/V1/resources/route_optimization_rest_client_config.php
@@ -0,0 +1,80 @@
+ [
+ 'google.longrunning.Operations' => [
+ 'GetOperation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.maps.routeoptimization.v1.RouteOptimization' => [
+ 'BatchOptimizeTours' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}:batchOptimizeTours',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*}:batchOptimizeTours',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'OptimizeTours' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}:optimizeTours',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*}:optimizeTours',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/MapsRouteOptimization/v1/tests/Unit/V1/Client/RouteOptimizationClientTest.php b/owl-bot-staging/MapsRouteOptimization/v1/tests/Unit/V1/Client/RouteOptimizationClientTest.php
new file mode 100644
index 000000000000..ce03ba07af40
--- /dev/null
+++ b/owl-bot-staging/MapsRouteOptimization/v1/tests/Unit/V1/Client/RouteOptimizationClientTest.php
@@ -0,0 +1,327 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return RouteOptimizationClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new RouteOptimizationClient($options);
+ }
+
+ /** @test */
+ public function batchOptimizeToursTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/batchOptimizeToursTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new BatchOptimizeToursResponse();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/batchOptimizeToursTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $parent = 'parent-995424086';
+ $modelConfigs = [];
+ $request = (new BatchOptimizeToursRequest())
+ ->setParent($parent)
+ ->setModelConfigs($modelConfigs);
+ $response = $gapicClient->batchOptimizeTours($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.maps.routeoptimization.v1.RouteOptimization/BatchOptimizeTours', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($parent, $actualValue);
+ $actualValue = $actualApiRequestObject->getModelConfigs();
+ $this->assertProtobufEquals($modelConfigs, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/batchOptimizeToursTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function batchOptimizeToursExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/batchOptimizeToursTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $parent = 'parent-995424086';
+ $modelConfigs = [];
+ $request = (new BatchOptimizeToursRequest())
+ ->setParent($parent)
+ ->setModelConfigs($modelConfigs);
+ $response = $gapicClient->batchOptimizeTours($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/batchOptimizeToursTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function optimizeToursTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $requestLabel = 'requestLabel1739091268';
+ $expectedResponse = new OptimizeToursResponse();
+ $expectedResponse->setRequestLabel($requestLabel);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $parent = 'parent-995424086';
+ $request = (new OptimizeToursRequest())
+ ->setParent($parent);
+ $response = $gapicClient->optimizeTours($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.maps.routeoptimization.v1.RouteOptimization/OptimizeTours', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($parent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function optimizeToursExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $parent = 'parent-995424086';
+ $request = (new OptimizeToursRequest())
+ ->setParent($parent);
+ try {
+ $gapicClient->optimizeTours($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function batchOptimizeToursAsyncTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/batchOptimizeToursTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new BatchOptimizeToursResponse();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/batchOptimizeToursTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $parent = 'parent-995424086';
+ $modelConfigs = [];
+ $request = (new BatchOptimizeToursRequest())
+ ->setParent($parent)
+ ->setModelConfigs($modelConfigs);
+ $response = $gapicClient->batchOptimizeToursAsync($request)->wait();
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.maps.routeoptimization.v1.RouteOptimization/BatchOptimizeTours', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($parent, $actualValue);
+ $actualValue = $actualApiRequestObject->getModelConfigs();
+ $this->assertProtobufEquals($modelConfigs, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/batchOptimizeToursTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/MediaTranslation/v1beta1/proto/src/GPBMetadata/Google/Cloud/Mediatranslation/V1Beta1/MediaTranslation.php b/owl-bot-staging/MediaTranslation/v1beta1/proto/src/GPBMetadata/Google/Cloud/Mediatranslation/V1Beta1/MediaTranslation.php
new file mode 100644
index 000000000000..bf1b2516f517
Binary files /dev/null and b/owl-bot-staging/MediaTranslation/v1beta1/proto/src/GPBMetadata/Google/Cloud/Mediatranslation/V1Beta1/MediaTranslation.php differ
diff --git a/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechConfig.php b/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechConfig.php
new file mode 100644
index 000000000000..410ed6ffea0f
--- /dev/null
+++ b/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechConfig.php
@@ -0,0 +1,159 @@
+google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechConfig
+ */
+class StreamingTranslateSpeechConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The common config for all the following audio contents.
+ *
+ * Generated from protobuf field .google.cloud.mediatranslation.v1beta1.TranslateSpeechConfig audio_config = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $audio_config = null;
+ /**
+ * Optional. If `false` or omitted, the system performs
+ * continuous translation (continuing to wait for and process audio even if
+ * the user pauses speaking) until the client closes the input stream (gRPC
+ * API) or until the maximum time limit has been reached. May return multiple
+ * `StreamingTranslateSpeechResult`s with the `is_final` flag set to `true`.
+ * If `true`, the speech translator will detect a single spoken utterance.
+ * When it detects that the user has paused or stopped speaking, it will
+ * return an `END_OF_SINGLE_UTTERANCE` event and cease translation.
+ * When the client receives 'END_OF_SINGLE_UTTERANCE' event, the client should
+ * stop sending the requests. However, clients should keep receiving remaining
+ * responses until the stream is terminated. To construct the complete
+ * sentence in a streaming way, one should override (if 'is_final' of previous
+ * response is false), or append (if 'is_final' of previous response is true).
+ *
+ * Generated from protobuf field bool single_utterance = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $single_utterance = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MediaTranslation\V1beta1\TranslateSpeechConfig $audio_config
+ * Required. The common config for all the following audio contents.
+ * @type bool $single_utterance
+ * Optional. If `false` or omitted, the system performs
+ * continuous translation (continuing to wait for and process audio even if
+ * the user pauses speaking) until the client closes the input stream (gRPC
+ * API) or until the maximum time limit has been reached. May return multiple
+ * `StreamingTranslateSpeechResult`s with the `is_final` flag set to `true`.
+ * If `true`, the speech translator will detect a single spoken utterance.
+ * When it detects that the user has paused or stopped speaking, it will
+ * return an `END_OF_SINGLE_UTTERANCE` event and cease translation.
+ * When the client receives 'END_OF_SINGLE_UTTERANCE' event, the client should
+ * stop sending the requests. However, clients should keep receiving remaining
+ * responses until the stream is terminated. To construct the complete
+ * sentence in a streaming way, one should override (if 'is_final' of previous
+ * response is false), or append (if 'is_final' of previous response is true).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Mediatranslation\V1Beta1\MediaTranslation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The common config for all the following audio contents.
+ *
+ * Generated from protobuf field .google.cloud.mediatranslation.v1beta1.TranslateSpeechConfig audio_config = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\MediaTranslation\V1beta1\TranslateSpeechConfig|null
+ */
+ public function getAudioConfig()
+ {
+ return $this->audio_config;
+ }
+
+ public function hasAudioConfig()
+ {
+ return isset($this->audio_config);
+ }
+
+ public function clearAudioConfig()
+ {
+ unset($this->audio_config);
+ }
+
+ /**
+ * Required. The common config for all the following audio contents.
+ *
+ * Generated from protobuf field .google.cloud.mediatranslation.v1beta1.TranslateSpeechConfig audio_config = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\MediaTranslation\V1beta1\TranslateSpeechConfig $var
+ * @return $this
+ */
+ public function setAudioConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MediaTranslation\V1beta1\TranslateSpeechConfig::class);
+ $this->audio_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. If `false` or omitted, the system performs
+ * continuous translation (continuing to wait for and process audio even if
+ * the user pauses speaking) until the client closes the input stream (gRPC
+ * API) or until the maximum time limit has been reached. May return multiple
+ * `StreamingTranslateSpeechResult`s with the `is_final` flag set to `true`.
+ * If `true`, the speech translator will detect a single spoken utterance.
+ * When it detects that the user has paused or stopped speaking, it will
+ * return an `END_OF_SINGLE_UTTERANCE` event and cease translation.
+ * When the client receives 'END_OF_SINGLE_UTTERANCE' event, the client should
+ * stop sending the requests. However, clients should keep receiving remaining
+ * responses until the stream is terminated. To construct the complete
+ * sentence in a streaming way, one should override (if 'is_final' of previous
+ * response is false), or append (if 'is_final' of previous response is true).
+ *
+ * Generated from protobuf field bool single_utterance = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getSingleUtterance()
+ {
+ return $this->single_utterance;
+ }
+
+ /**
+ * Optional. If `false` or omitted, the system performs
+ * continuous translation (continuing to wait for and process audio even if
+ * the user pauses speaking) until the client closes the input stream (gRPC
+ * API) or until the maximum time limit has been reached. May return multiple
+ * `StreamingTranslateSpeechResult`s with the `is_final` flag set to `true`.
+ * If `true`, the speech translator will detect a single spoken utterance.
+ * When it detects that the user has paused or stopped speaking, it will
+ * return an `END_OF_SINGLE_UTTERANCE` event and cease translation.
+ * When the client receives 'END_OF_SINGLE_UTTERANCE' event, the client should
+ * stop sending the requests. However, clients should keep receiving remaining
+ * responses until the stream is terminated. To construct the complete
+ * sentence in a streaming way, one should override (if 'is_final' of previous
+ * response is false), or append (if 'is_final' of previous response is true).
+ *
+ * Generated from protobuf field bool single_utterance = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setSingleUtterance($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->single_utterance = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechRequest.php b/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechRequest.php
new file mode 100644
index 000000000000..7675f1ceba05
--- /dev/null
+++ b/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechRequest.php
@@ -0,0 +1,139 @@
+google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechRequest
+ */
+class StreamingTranslateSpeechRequest extends \Google\Protobuf\Internal\Message
+{
+ protected $streaming_request;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MediaTranslation\V1beta1\StreamingTranslateSpeechConfig $streaming_config
+ * Provides information to the recognizer that specifies how to process the
+ * request. The first `StreamingTranslateSpeechRequest` message must contain
+ * a `streaming_config` message.
+ * @type string $audio_content
+ * The audio data to be translated. Sequential chunks of audio data are sent
+ * in sequential `StreamingTranslateSpeechRequest` messages. The first
+ * `StreamingTranslateSpeechRequest` message must not contain
+ * `audio_content` data and all subsequent `StreamingTranslateSpeechRequest`
+ * messages must contain `audio_content` data. The audio bytes must be
+ * encoded as specified in `StreamingTranslateSpeechConfig`. Note: as with
+ * all bytes fields, protobuffers use a pure binary representation (not
+ * base64).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Mediatranslation\V1Beta1\MediaTranslation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Provides information to the recognizer that specifies how to process the
+ * request. The first `StreamingTranslateSpeechRequest` message must contain
+ * a `streaming_config` message.
+ *
+ * Generated from protobuf field .google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechConfig streaming_config = 1;
+ * @return \Google\Cloud\MediaTranslation\V1beta1\StreamingTranslateSpeechConfig|null
+ */
+ public function getStreamingConfig()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasStreamingConfig()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Provides information to the recognizer that specifies how to process the
+ * request. The first `StreamingTranslateSpeechRequest` message must contain
+ * a `streaming_config` message.
+ *
+ * Generated from protobuf field .google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechConfig streaming_config = 1;
+ * @param \Google\Cloud\MediaTranslation\V1beta1\StreamingTranslateSpeechConfig $var
+ * @return $this
+ */
+ public function setStreamingConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MediaTranslation\V1beta1\StreamingTranslateSpeechConfig::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * The audio data to be translated. Sequential chunks of audio data are sent
+ * in sequential `StreamingTranslateSpeechRequest` messages. The first
+ * `StreamingTranslateSpeechRequest` message must not contain
+ * `audio_content` data and all subsequent `StreamingTranslateSpeechRequest`
+ * messages must contain `audio_content` data. The audio bytes must be
+ * encoded as specified in `StreamingTranslateSpeechConfig`. Note: as with
+ * all bytes fields, protobuffers use a pure binary representation (not
+ * base64).
+ *
+ * Generated from protobuf field bytes audio_content = 2;
+ * @return string
+ */
+ public function getAudioContent()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasAudioContent()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * The audio data to be translated. Sequential chunks of audio data are sent
+ * in sequential `StreamingTranslateSpeechRequest` messages. The first
+ * `StreamingTranslateSpeechRequest` message must not contain
+ * `audio_content` data and all subsequent `StreamingTranslateSpeechRequest`
+ * messages must contain `audio_content` data. The audio bytes must be
+ * encoded as specified in `StreamingTranslateSpeechConfig`. Note: as with
+ * all bytes fields, protobuffers use a pure binary representation (not
+ * base64).
+ *
+ * Generated from protobuf field bytes audio_content = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setAudioContent($var)
+ {
+ GPBUtil::checkString($var, False);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getStreamingRequest()
+ {
+ return $this->whichOneof("streaming_request");
+ }
+
+}
+
diff --git a/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechResponse.php b/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechResponse.php
new file mode 100644
index 000000000000..8760ccf25ab8
--- /dev/null
+++ b/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechResponse.php
@@ -0,0 +1,164 @@
+google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResponse
+ */
+class StreamingTranslateSpeechResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. If set, returns a [google.rpc.Status][google.rpc.Status] message that
+ * specifies the error for the operation.
+ *
+ * Generated from protobuf field .google.rpc.Status error = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $error = null;
+ /**
+ * Output only. The translation result that is currently being processed (is_final could be
+ * true or false).
+ *
+ * Generated from protobuf field .google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResult result = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $result = null;
+ /**
+ * Output only. Indicates the type of speech event.
+ *
+ * Generated from protobuf field .google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResponse.SpeechEventType speech_event_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $speech_event_type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Rpc\Status $error
+ * Output only. If set, returns a [google.rpc.Status][google.rpc.Status] message that
+ * specifies the error for the operation.
+ * @type \Google\Cloud\MediaTranslation\V1beta1\StreamingTranslateSpeechResult $result
+ * Output only. The translation result that is currently being processed (is_final could be
+ * true or false).
+ * @type int $speech_event_type
+ * Output only. Indicates the type of speech event.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Mediatranslation\V1Beta1\MediaTranslation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. If set, returns a [google.rpc.Status][google.rpc.Status] message that
+ * specifies the error for the operation.
+ *
+ * Generated from protobuf field .google.rpc.Status error = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Rpc\Status|null
+ */
+ public function getError()
+ {
+ return $this->error;
+ }
+
+ public function hasError()
+ {
+ return isset($this->error);
+ }
+
+ public function clearError()
+ {
+ unset($this->error);
+ }
+
+ /**
+ * Output only. If set, returns a [google.rpc.Status][google.rpc.Status] message that
+ * specifies the error for the operation.
+ *
+ * Generated from protobuf field .google.rpc.Status error = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Rpc\Status $var
+ * @return $this
+ */
+ public function setError($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Rpc\Status::class);
+ $this->error = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The translation result that is currently being processed (is_final could be
+ * true or false).
+ *
+ * Generated from protobuf field .google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResult result = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\MediaTranslation\V1beta1\StreamingTranslateSpeechResult|null
+ */
+ public function getResult()
+ {
+ return $this->result;
+ }
+
+ public function hasResult()
+ {
+ return isset($this->result);
+ }
+
+ public function clearResult()
+ {
+ unset($this->result);
+ }
+
+ /**
+ * Output only. The translation result that is currently being processed (is_final could be
+ * true or false).
+ *
+ * Generated from protobuf field .google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResult result = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\MediaTranslation\V1beta1\StreamingTranslateSpeechResult $var
+ * @return $this
+ */
+ public function setResult($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MediaTranslation\V1beta1\StreamingTranslateSpeechResult::class);
+ $this->result = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Indicates the type of speech event.
+ *
+ * Generated from protobuf field .google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResponse.SpeechEventType speech_event_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getSpeechEventType()
+ {
+ return $this->speech_event_type;
+ }
+
+ /**
+ * Output only. Indicates the type of speech event.
+ *
+ * Generated from protobuf field .google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResponse.SpeechEventType speech_event_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setSpeechEventType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MediaTranslation\V1beta1\StreamingTranslateSpeechResponse\SpeechEventType::class);
+ $this->speech_event_type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechResponse/SpeechEventType.php b/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechResponse/SpeechEventType.php
new file mode 100644
index 000000000000..f8dd4b40d7ee
--- /dev/null
+++ b/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechResponse/SpeechEventType.php
@@ -0,0 +1,66 @@
+google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResponse.SpeechEventType
+ */
+class SpeechEventType
+{
+ /**
+ * No speech event specified.
+ *
+ * Generated from protobuf enum SPEECH_EVENT_TYPE_UNSPECIFIED = 0;
+ */
+ const SPEECH_EVENT_TYPE_UNSPECIFIED = 0;
+ /**
+ * This event indicates that the server has detected the end of the user's
+ * speech utterance and expects no additional speech. Therefore, the server
+ * will not process additional audio (although it may subsequently return
+ * additional results). When the client receives 'END_OF_SINGLE_UTTERANCE'
+ * event, the client should stop sending the requests. However, clients
+ * should keep receiving remaining responses until the stream is terminated.
+ * To construct the complete sentence in a streaming way, one should
+ * override (if 'is_final' of previous response is false), or append (if
+ * 'is_final' of previous response is true). This event is only sent if
+ * `single_utterance` was set to `true`, and is not used otherwise.
+ *
+ * Generated from protobuf enum END_OF_SINGLE_UTTERANCE = 1;
+ */
+ const END_OF_SINGLE_UTTERANCE = 1;
+
+ private static $valueToName = [
+ self::SPEECH_EVENT_TYPE_UNSPECIFIED => 'SPEECH_EVENT_TYPE_UNSPECIFIED',
+ self::END_OF_SINGLE_UTTERANCE => 'END_OF_SINGLE_UTTERANCE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(SpeechEventType::class, \Google\Cloud\MediaTranslation\V1beta1\StreamingTranslateSpeechResponse_SpeechEventType::class);
+
diff --git a/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechResult.php b/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechResult.php
new file mode 100644
index 000000000000..f70d56afe8af
--- /dev/null
+++ b/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechResult.php
@@ -0,0 +1,76 @@
+google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResult
+ */
+class StreamingTranslateSpeechResult extends \Google\Protobuf\Internal\Message
+{
+ protected $result;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MediaTranslation\V1beta1\StreamingTranslateSpeechResult\TextTranslationResult $text_translation_result
+ * Text translation result.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Mediatranslation\V1Beta1\MediaTranslation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Text translation result.
+ *
+ * Generated from protobuf field .google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResult.TextTranslationResult text_translation_result = 1;
+ * @return \Google\Cloud\MediaTranslation\V1beta1\StreamingTranslateSpeechResult\TextTranslationResult|null
+ */
+ public function getTextTranslationResult()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasTextTranslationResult()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Text translation result.
+ *
+ * Generated from protobuf field .google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResult.TextTranslationResult text_translation_result = 1;
+ * @param \Google\Cloud\MediaTranslation\V1beta1\StreamingTranslateSpeechResult\TextTranslationResult $var
+ * @return $this
+ */
+ public function setTextTranslationResult($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MediaTranslation\V1beta1\StreamingTranslateSpeechResult\TextTranslationResult::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getResult()
+ {
+ return $this->whichOneof("result");
+ }
+
+}
+
diff --git a/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechResult/TextTranslationResult.php b/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechResult/TextTranslationResult.php
new file mode 100644
index 000000000000..30b706ff4853
--- /dev/null
+++ b/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/StreamingTranslateSpeechResult/TextTranslationResult.php
@@ -0,0 +1,124 @@
+google.cloud.mediatranslation.v1beta1.StreamingTranslateSpeechResult.TextTranslationResult
+ */
+class TextTranslationResult extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The translated sentence.
+ *
+ * Generated from protobuf field string translation = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $translation = '';
+ /**
+ * Output only. If `false`, this `StreamingTranslateSpeechResult` represents
+ * an interim result that may change. If `true`, this is the final time the
+ * translation service will return this particular
+ * `StreamingTranslateSpeechResult`, the streaming translator will not
+ * return any further hypotheses for this portion of the transcript and
+ * corresponding audio.
+ *
+ * Generated from protobuf field bool is_final = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $is_final = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $translation
+ * Output only. The translated sentence.
+ * @type bool $is_final
+ * Output only. If `false`, this `StreamingTranslateSpeechResult` represents
+ * an interim result that may change. If `true`, this is the final time the
+ * translation service will return this particular
+ * `StreamingTranslateSpeechResult`, the streaming translator will not
+ * return any further hypotheses for this portion of the transcript and
+ * corresponding audio.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Mediatranslation\V1Beta1\MediaTranslation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The translated sentence.
+ *
+ * Generated from protobuf field string translation = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getTranslation()
+ {
+ return $this->translation;
+ }
+
+ /**
+ * Output only. The translated sentence.
+ *
+ * Generated from protobuf field string translation = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setTranslation($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->translation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. If `false`, this `StreamingTranslateSpeechResult` represents
+ * an interim result that may change. If `true`, this is the final time the
+ * translation service will return this particular
+ * `StreamingTranslateSpeechResult`, the streaming translator will not
+ * return any further hypotheses for this portion of the transcript and
+ * corresponding audio.
+ *
+ * Generated from protobuf field bool is_final = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getIsFinal()
+ {
+ return $this->is_final;
+ }
+
+ /**
+ * Output only. If `false`, this `StreamingTranslateSpeechResult` represents
+ * an interim result that may change. If `true`, this is the final time the
+ * translation service will return this particular
+ * `StreamingTranslateSpeechResult`, the streaming translator will not
+ * return any further hypotheses for this portion of the transcript and
+ * corresponding audio.
+ *
+ * Generated from protobuf field bool is_final = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setIsFinal($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->is_final = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(TextTranslationResult::class, \Google\Cloud\MediaTranslation\V1beta1\StreamingTranslateSpeechResult_TextTranslationResult::class);
+
diff --git a/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/TranslateSpeechConfig.php b/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/TranslateSpeechConfig.php
new file mode 100644
index 000000000000..7ff6b9c28d56
--- /dev/null
+++ b/owl-bot-staging/MediaTranslation/v1beta1/proto/src/Google/Cloud/MediaTranslation/V1beta1/TranslateSpeechConfig.php
@@ -0,0 +1,308 @@
+google.cloud.mediatranslation.v1beta1.TranslateSpeechConfig
+ */
+class TranslateSpeechConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Encoding of audio data.
+ * Supported formats:
+ * - `linear16`
+ * Uncompressed 16-bit signed little-endian samples (Linear PCM).
+ * - `flac`
+ * `flac` (Free Lossless Audio Codec) is the recommended encoding
+ * because it is lossless--therefore recognition is not compromised--and
+ * requires only about half the bandwidth of `linear16`.
+ * - `mulaw`
+ * 8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.
+ * - `amr`
+ * Adaptive Multi-Rate Narrowband codec. `sample_rate_hertz` must be 8000.
+ * - `amr-wb`
+ * Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000.
+ * - `ogg-opus`
+ * Opus encoded audio frames in [Ogg](https://wikipedia.org/wiki/Ogg)
+ * container. `sample_rate_hertz` must be one of 8000, 12000, 16000, 24000,
+ * or 48000.
+ * - `mp3`
+ * MP3 audio. Support all standard MP3 bitrates (which range from 32-320
+ * kbps). When using this encoding, `sample_rate_hertz` has to match the
+ * sample rate of the file being used.
+ *
+ * Generated from protobuf field string audio_encoding = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $audio_encoding = '';
+ /**
+ * Required. Source language code (BCP-47) of the input audio.
+ *
+ * Generated from protobuf field string source_language_code = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $source_language_code = '';
+ /**
+ * Required. Target language code (BCP-47) of the output.
+ *
+ * Generated from protobuf field string target_language_code = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $target_language_code = '';
+ /**
+ * Optional. Sample rate in Hertz of the audio data. Valid values are:
+ * 8000-48000. 16000 is optimal. For best results, set the sampling rate of
+ * the audio source to 16000 Hz. If that's not possible, use the native sample
+ * rate of the audio source (instead of re-sampling).
+ *
+ * Generated from protobuf field int32 sample_rate_hertz = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $sample_rate_hertz = 0;
+ /**
+ * Optional. `google-provided-model/video` and
+ * `google-provided-model/enhanced-phone-call` are premium models.
+ * `google-provided-model/phone-call` is not premium model.
+ *
+ * Generated from protobuf field string model = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $model = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $audio_encoding
+ * Required. Encoding of audio data.
+ * Supported formats:
+ * - `linear16`
+ * Uncompressed 16-bit signed little-endian samples (Linear PCM).
+ * - `flac`
+ * `flac` (Free Lossless Audio Codec) is the recommended encoding
+ * because it is lossless--therefore recognition is not compromised--and
+ * requires only about half the bandwidth of `linear16`.
+ * - `mulaw`
+ * 8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.
+ * - `amr`
+ * Adaptive Multi-Rate Narrowband codec. `sample_rate_hertz` must be 8000.
+ * - `amr-wb`
+ * Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000.
+ * - `ogg-opus`
+ * Opus encoded audio frames in [Ogg](https://wikipedia.org/wiki/Ogg)
+ * container. `sample_rate_hertz` must be one of 8000, 12000, 16000, 24000,
+ * or 48000.
+ * - `mp3`
+ * MP3 audio. Support all standard MP3 bitrates (which range from 32-320
+ * kbps). When using this encoding, `sample_rate_hertz` has to match the
+ * sample rate of the file being used.
+ * @type string $source_language_code
+ * Required. Source language code (BCP-47) of the input audio.
+ * @type string $target_language_code
+ * Required. Target language code (BCP-47) of the output.
+ * @type int $sample_rate_hertz
+ * Optional. Sample rate in Hertz of the audio data. Valid values are:
+ * 8000-48000. 16000 is optimal. For best results, set the sampling rate of
+ * the audio source to 16000 Hz. If that's not possible, use the native sample
+ * rate of the audio source (instead of re-sampling).
+ * @type string $model
+ * Optional. `google-provided-model/video` and
+ * `google-provided-model/enhanced-phone-call` are premium models.
+ * `google-provided-model/phone-call` is not premium model.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Mediatranslation\V1Beta1\MediaTranslation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Encoding of audio data.
+ * Supported formats:
+ * - `linear16`
+ * Uncompressed 16-bit signed little-endian samples (Linear PCM).
+ * - `flac`
+ * `flac` (Free Lossless Audio Codec) is the recommended encoding
+ * because it is lossless--therefore recognition is not compromised--and
+ * requires only about half the bandwidth of `linear16`.
+ * - `mulaw`
+ * 8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.
+ * - `amr`
+ * Adaptive Multi-Rate Narrowband codec. `sample_rate_hertz` must be 8000.
+ * - `amr-wb`
+ * Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000.
+ * - `ogg-opus`
+ * Opus encoded audio frames in [Ogg](https://wikipedia.org/wiki/Ogg)
+ * container. `sample_rate_hertz` must be one of 8000, 12000, 16000, 24000,
+ * or 48000.
+ * - `mp3`
+ * MP3 audio. Support all standard MP3 bitrates (which range from 32-320
+ * kbps). When using this encoding, `sample_rate_hertz` has to match the
+ * sample rate of the file being used.
+ *
+ * Generated from protobuf field string audio_encoding = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getAudioEncoding()
+ {
+ return $this->audio_encoding;
+ }
+
+ /**
+ * Required. Encoding of audio data.
+ * Supported formats:
+ * - `linear16`
+ * Uncompressed 16-bit signed little-endian samples (Linear PCM).
+ * - `flac`
+ * `flac` (Free Lossless Audio Codec) is the recommended encoding
+ * because it is lossless--therefore recognition is not compromised--and
+ * requires only about half the bandwidth of `linear16`.
+ * - `mulaw`
+ * 8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.
+ * - `amr`
+ * Adaptive Multi-Rate Narrowband codec. `sample_rate_hertz` must be 8000.
+ * - `amr-wb`
+ * Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000.
+ * - `ogg-opus`
+ * Opus encoded audio frames in [Ogg](https://wikipedia.org/wiki/Ogg)
+ * container. `sample_rate_hertz` must be one of 8000, 12000, 16000, 24000,
+ * or 48000.
+ * - `mp3`
+ * MP3 audio. Support all standard MP3 bitrates (which range from 32-320
+ * kbps). When using this encoding, `sample_rate_hertz` has to match the
+ * sample rate of the file being used.
+ *
+ * Generated from protobuf field string audio_encoding = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setAudioEncoding($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->audio_encoding = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Source language code (BCP-47) of the input audio.
+ *
+ * Generated from protobuf field string source_language_code = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getSourceLanguageCode()
+ {
+ return $this->source_language_code;
+ }
+
+ /**
+ * Required. Source language code (BCP-47) of the input audio.
+ *
+ * Generated from protobuf field string source_language_code = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setSourceLanguageCode($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->source_language_code = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Target language code (BCP-47) of the output.
+ *
+ * Generated from protobuf field string target_language_code = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getTargetLanguageCode()
+ {
+ return $this->target_language_code;
+ }
+
+ /**
+ * Required. Target language code (BCP-47) of the output.
+ *
+ * Generated from protobuf field string target_language_code = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setTargetLanguageCode($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target_language_code = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Sample rate in Hertz of the audio data. Valid values are:
+ * 8000-48000. 16000 is optimal. For best results, set the sampling rate of
+ * the audio source to 16000 Hz. If that's not possible, use the native sample
+ * rate of the audio source (instead of re-sampling).
+ *
+ * Generated from protobuf field int32 sample_rate_hertz = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getSampleRateHertz()
+ {
+ return $this->sample_rate_hertz;
+ }
+
+ /**
+ * Optional. Sample rate in Hertz of the audio data. Valid values are:
+ * 8000-48000. 16000 is optimal. For best results, set the sampling rate of
+ * the audio source to 16000 Hz. If that's not possible, use the native sample
+ * rate of the audio source (instead of re-sampling).
+ *
+ * Generated from protobuf field int32 sample_rate_hertz = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setSampleRateHertz($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->sample_rate_hertz = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. `google-provided-model/video` and
+ * `google-provided-model/enhanced-phone-call` are premium models.
+ * `google-provided-model/phone-call` is not premium model.
+ *
+ * Generated from protobuf field string model = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getModel()
+ {
+ return $this->model;
+ }
+
+ /**
+ * Optional. `google-provided-model/video` and
+ * `google-provided-model/enhanced-phone-call` are premium models.
+ * `google-provided-model/phone-call` is not premium model.
+ *
+ * Generated from protobuf field string model = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setModel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->model = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MediaTranslation/v1beta1/samples/V1beta1/SpeechTranslationServiceClient/streaming_translate_speech.php b/owl-bot-staging/MediaTranslation/v1beta1/samples/V1beta1/SpeechTranslationServiceClient/streaming_translate_speech.php
new file mode 100644
index 000000000000..16ba4b85793d
--- /dev/null
+++ b/owl-bot-staging/MediaTranslation/v1beta1/samples/V1beta1/SpeechTranslationServiceClient/streaming_translate_speech.php
@@ -0,0 +1,64 @@
+streamingTranslateSpeech();
+ $stream->writeAll([$request,]);
+
+ /** @var StreamingTranslateSpeechResponse $element */
+ foreach ($stream->closeWriteAndReadAll() as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END mediatranslation_v1beta1_generated_SpeechTranslationService_StreamingTranslateSpeech_sync]
diff --git a/owl-bot-staging/MediaTranslation/v1beta1/src/V1beta1/Client/SpeechTranslationServiceClient.php b/owl-bot-staging/MediaTranslation/v1beta1/src/V1beta1/Client/SpeechTranslationServiceClient.php
new file mode 100644
index 000000000000..23048f622246
--- /dev/null
+++ b/owl-bot-staging/MediaTranslation/v1beta1/src/V1beta1/Client/SpeechTranslationServiceClient.php
@@ -0,0 +1,181 @@
+ self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/speech_translation_service_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/speech_translation_service_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/speech_translation_service_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/speech_translation_service_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $options {
+ * Optional. Options for configuring the service API wrapper.
+ *
+ * @type string $apiEndpoint
+ * The address of the API remote host. May optionally include the port, formatted
+ * as ":". Default 'mediatranslation.googleapis.com:443'.
+ * @type string|array|FetchAuthTokenInterface|CredentialsWrapper $credentials
+ * The credentials to be used by the client to authorize API calls. This option
+ * accepts either a path to a credentials file, or a decoded credentials file as a
+ * PHP array.
+ * *Advanced usage*: In addition, this option can also accept a pre-constructed
+ * {@see \Google\Auth\FetchAuthTokenInterface} object or
+ * {@see \Google\ApiCore\CredentialsWrapper} object. Note that when one of these
+ * objects are provided, any settings in $credentialsConfig will be ignored.
+ * @type array $credentialsConfig
+ * Options used to configure credentials, including auth token caching, for the
+ * client. For a full list of supporting configuration options, see
+ * {@see \Google\ApiCore\CredentialsWrapper::build()} .
+ * @type bool $disableRetries
+ * Determines whether or not retries defined by the client configuration should be
+ * disabled. Defaults to `false`.
+ * @type string|array $clientConfig
+ * Client method configuration, including retry settings. This option can be either
+ * a path to a JSON file, or a PHP array containing the decoded JSON data. By
+ * default this settings points to the default client config file, which is
+ * provided in the resources folder.
+ * @type string|TransportInterface $transport
+ * The transport used for executing network requests. May be either the string
+ * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system.
+ * *Advanced usage*: Additionally, it is possible to pass in an already
+ * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note
+ * that when this object is provided, any settings in $transportConfig, and any
+ * $apiEndpoint setting, will be ignored.
+ * @type array $transportConfig
+ * Configuration options that will be used to construct the transport. Options for
+ * each supported transport type should be passed in a key for that transport. For
+ * example:
+ * $transportConfig = [
+ * 'grpc' => [...],
+ * 'rest' => [...],
+ * ];
+ * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and
+ * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the
+ * supported options.
+ * @type callable $clientCertSource
+ * A callable which returns the client cert as a string. This can be used to
+ * provide a certificate and private key to the transport layer for mTLS.
+ * @type false|LoggerInterface $logger
+ * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the
+ * 'GOOGLE_SDK_PHP_LOGGING' environment flag
+ * }
+ *
+ * @throws ValidationException
+ *
+ * @experimental
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ }
+
+ /**
+ * Performs bidirectional streaming speech translation: receive results while
+ * sending audio. This method is only available via the gRPC API (not REST).
+ *
+ * @example samples/V1beta1/SpeechTranslationServiceClient/streaming_translate_speech.php
+ *
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type int $timeoutMillis
+ * Timeout to use for this call.
+ * }
+ *
+ * @return BidiStream
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function streamingTranslateSpeech(array $callOptions = []): BidiStream
+ {
+ return $this->startApiCall('StreamingTranslateSpeech', null, $callOptions);
+ }
+}
diff --git a/owl-bot-staging/MediaTranslation/v1beta1/src/V1beta1/Gapic/SpeechTranslationServiceGapicClient.php b/owl-bot-staging/MediaTranslation/v1beta1/src/V1beta1/Gapic/SpeechTranslationServiceGapicClient.php
new file mode 100644
index 000000000000..39ead91cf776
--- /dev/null
+++ b/owl-bot-staging/MediaTranslation/v1beta1/src/V1beta1/Gapic/SpeechTranslationServiceGapicClient.php
@@ -0,0 +1,258 @@
+streamingTranslateSpeech();
+ * $stream->writeAll($requests);
+ * foreach ($stream->closeWriteAndReadAll() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * // Alternatively:
+ * // Write requests individually, making read() calls if
+ * // required. Call closeWrite() once writes are complete, and read the
+ * // remaining responses from the server.
+ * $requests = [
+ * $request,
+ * ];
+ * $stream = $speechTranslationServiceClient->streamingTranslateSpeech();
+ * foreach ($requests as $request) {
+ * $stream->write($request);
+ * // if required, read a single response from the stream
+ * $element = $stream->read();
+ * // doSomethingWith($element)
+ * }
+ * $stream->closeWrite();
+ * $element = $stream->read();
+ * while (!is_null($element)) {
+ * // doSomethingWith($element)
+ * $element = $stream->read();
+ * }
+ * } finally {
+ * $speechTranslationServiceClient->close();
+ * }
+ * ```
+ *
+ * @experimental
+ *
+ * @deprecated Please use the new service client {@see \Google\Cloud\MediaTranslation\V1beta1\Client\SpeechTranslationServiceClient}.
+ */
+class SpeechTranslationServiceGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.cloud.mediatranslation.v1beta1.SpeechTranslationService';
+
+ /**
+ * The default address of the service.
+ *
+ * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead.
+ */
+ const SERVICE_ADDRESS = 'mediatranslation.googleapis.com';
+
+ /** The address template of the service. */
+ private const SERVICE_ADDRESS_TEMPLATE = 'mediatranslation.UNIVERSE_DOMAIN';
+
+ /** The default port of the service. */
+ const DEFAULT_SERVICE_PORT = 443;
+
+ /** The name of the code generator, to be included in the agent header. */
+ const CODEGEN_NAME = 'gapic';
+
+ /** The default scopes required by the service. */
+ public static $serviceScopes = [
+ 'https://www.googleapis.com/auth/cloud-platform',
+ ];
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/speech_translation_service_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/speech_translation_service_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/speech_translation_service_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/speech_translation_service_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $options {
+ * Optional. Options for configuring the service API wrapper.
+ *
+ * @type string $apiEndpoint
+ * The address of the API remote host. May optionally include the port, formatted
+ * as ":". Default 'mediatranslation.googleapis.com:443'.
+ * @type string|array|FetchAuthTokenInterface|CredentialsWrapper $credentials
+ * The credentials to be used by the client to authorize API calls. This option
+ * accepts either a path to a credentials file, or a decoded credentials file as a
+ * PHP array.
+ * *Advanced usage*: In addition, this option can also accept a pre-constructed
+ * {@see \Google\Auth\FetchAuthTokenInterface} object or
+ * {@see \Google\ApiCore\CredentialsWrapper} object. Note that when one of these
+ * objects are provided, any settings in $credentialsConfig will be ignored.
+ * @type array $credentialsConfig
+ * Options used to configure credentials, including auth token caching, for the
+ * client. For a full list of supporting configuration options, see
+ * {@see \Google\ApiCore\CredentialsWrapper::build()} .
+ * @type bool $disableRetries
+ * Determines whether or not retries defined by the client configuration should be
+ * disabled. Defaults to `false`.
+ * @type string|array $clientConfig
+ * Client method configuration, including retry settings. This option can be either
+ * a path to a JSON file, or a PHP array containing the decoded JSON data. By
+ * default this settings points to the default client config file, which is
+ * provided in the resources folder.
+ * @type string|TransportInterface $transport
+ * The transport used for executing network requests. May be either the string
+ * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system.
+ * *Advanced usage*: Additionally, it is possible to pass in an already
+ * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note
+ * that when this object is provided, any settings in $transportConfig, and any
+ * $apiEndpoint setting, will be ignored.
+ * @type array $transportConfig
+ * Configuration options that will be used to construct the transport. Options for
+ * each supported transport type should be passed in a key for that transport. For
+ * example:
+ * $transportConfig = [
+ * 'grpc' => [...],
+ * 'rest' => [...],
+ * ];
+ * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and
+ * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the
+ * supported options.
+ * @type callable $clientCertSource
+ * A callable which returns the client cert as a string. This can be used to
+ * provide a certificate and private key to the transport layer for mTLS.
+ * }
+ *
+ * @throws ValidationException
+ *
+ * @experimental
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ }
+
+ /**
+ * Performs bidirectional streaming speech translation: receive results while
+ * sending audio. This method is only available via the gRPC API (not REST).
+ *
+ * Sample code:
+ * ```
+ * $speechTranslationServiceClient = new SpeechTranslationServiceClient();
+ * try {
+ * $request = new StreamingTranslateSpeechRequest();
+ * // Write all requests to the server, then read all responses until the
+ * // stream is complete
+ * $requests = [
+ * $request,
+ * ];
+ * $stream = $speechTranslationServiceClient->streamingTranslateSpeech();
+ * $stream->writeAll($requests);
+ * foreach ($stream->closeWriteAndReadAll() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * // Alternatively:
+ * // Write requests individually, making read() calls if
+ * // required. Call closeWrite() once writes are complete, and read the
+ * // remaining responses from the server.
+ * $requests = [
+ * $request,
+ * ];
+ * $stream = $speechTranslationServiceClient->streamingTranslateSpeech();
+ * foreach ($requests as $request) {
+ * $stream->write($request);
+ * // if required, read a single response from the stream
+ * $element = $stream->read();
+ * // doSomethingWith($element)
+ * }
+ * $stream->closeWrite();
+ * $element = $stream->read();
+ * while (!is_null($element)) {
+ * // doSomethingWith($element)
+ * $element = $stream->read();
+ * }
+ * } finally {
+ * $speechTranslationServiceClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $timeoutMillis
+ * Timeout to use for this call.
+ * }
+ *
+ * @return \Google\ApiCore\BidiStream
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function streamingTranslateSpeech(array $optionalArgs = [])
+ {
+ return $this->startCall('StreamingTranslateSpeech', StreamingTranslateSpeechResponse::class, $optionalArgs, null, Call::BIDI_STREAMING_CALL);
+ }
+}
diff --git a/owl-bot-staging/MediaTranslation/v1beta1/src/V1beta1/SpeechTranslationServiceClient.php b/owl-bot-staging/MediaTranslation/v1beta1/src/V1beta1/SpeechTranslationServiceClient.php
new file mode 100644
index 000000000000..f6074ee325aa
--- /dev/null
+++ b/owl-bot-staging/MediaTranslation/v1beta1/src/V1beta1/SpeechTranslationServiceClient.php
@@ -0,0 +1,36 @@
+ [
+ 'google.cloud.mediatranslation.v1beta1.SpeechTranslationService' => [
+ 'StreamingTranslateSpeech' => [
+ 'grpcStreaming' => [
+ 'grpcStreamingType' => 'BidiStreaming',
+ ],
+ 'callType' => \Google\ApiCore\Call::BIDI_STREAMING_CALL,
+ 'responseType' => 'Google\Cloud\MediaTranslation\V1beta1\StreamingTranslateSpeechResponse',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/MediaTranslation/v1beta1/src/V1beta1/resources/speech_translation_service_rest_client_config.php b/owl-bot-staging/MediaTranslation/v1beta1/src/V1beta1/resources/speech_translation_service_rest_client_config.php
new file mode 100644
index 000000000000..b33f57959be3
--- /dev/null
+++ b/owl-bot-staging/MediaTranslation/v1beta1/src/V1beta1/resources/speech_translation_service_rest_client_config.php
@@ -0,0 +1,26 @@
+ [],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/MediaTranslation/v1beta1/tests/Unit/V1beta1/Client/SpeechTranslationServiceClientTest.php b/owl-bot-staging/MediaTranslation/v1beta1/tests/Unit/V1beta1/Client/SpeechTranslationServiceClientTest.php
new file mode 100644
index 000000000000..28e620cf269b
--- /dev/null
+++ b/owl-bot-staging/MediaTranslation/v1beta1/tests/Unit/V1beta1/Client/SpeechTranslationServiceClientTest.php
@@ -0,0 +1,151 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return SpeechTranslationServiceClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new SpeechTranslationServiceClient($options);
+ }
+
+ /** @test */
+ public function streamingTranslateSpeechTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new StreamingTranslateSpeechResponse();
+ $transport->addResponse($expectedResponse);
+ $expectedResponse2 = new StreamingTranslateSpeechResponse();
+ $transport->addResponse($expectedResponse2);
+ $expectedResponse3 = new StreamingTranslateSpeechResponse();
+ $transport->addResponse($expectedResponse3);
+ // Mock request
+ $request = new StreamingTranslateSpeechRequest();
+ $request2 = new StreamingTranslateSpeechRequest();
+ $request3 = new StreamingTranslateSpeechRequest();
+ $bidi = $gapicClient->streamingTranslateSpeech();
+ $this->assertInstanceOf(BidiStream::class, $bidi);
+ $bidi->write($request);
+ $responses = [];
+ $responses[] = $bidi->read();
+ $bidi->writeAll([
+ $request2,
+ $request3,
+ ]);
+ foreach ($bidi->closeWriteAndReadAll() as $response) {
+ $responses[] = $response;
+ }
+
+ $expectedResponses = [];
+ $expectedResponses[] = $expectedResponse;
+ $expectedResponses[] = $expectedResponse2;
+ $expectedResponses[] = $expectedResponse3;
+ $this->assertEquals($expectedResponses, $responses);
+ $createStreamRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($createStreamRequests));
+ $streamFuncCall = $createStreamRequests[0]->getFuncCall();
+ $streamRequestObject = $createStreamRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.mediatranslation.v1beta1.SpeechTranslationService/StreamingTranslateSpeech', $streamFuncCall);
+ $this->assertNull($streamRequestObject);
+ $callObjects = $transport->popCallObjects();
+ $this->assertSame(1, count($callObjects));
+ $bidiCall = $callObjects[0];
+ $writeRequests = $bidiCall->popReceivedCalls();
+ $expectedRequests = [];
+ $expectedRequests[] = $request;
+ $expectedRequests[] = $request2;
+ $expectedRequests[] = $request3;
+ $this->assertEquals($expectedRequests, $writeRequests);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function streamingTranslateSpeechExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->setStreamingStatus($status);
+ $this->assertTrue($transport->isExhausted());
+ $bidi = $gapicClient->streamingTranslateSpeech();
+ $results = $bidi->closeWriteAndReadAll();
+ try {
+ iterator_to_array($results);
+ // If the close stream method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/MediaTranslation/v1beta1/tests/Unit/V1beta1/SpeechTranslationServiceClientTest.php b/owl-bot-staging/MediaTranslation/v1beta1/tests/Unit/V1beta1/SpeechTranslationServiceClientTest.php
new file mode 100644
index 000000000000..e6d617f07091
--- /dev/null
+++ b/owl-bot-staging/MediaTranslation/v1beta1/tests/Unit/V1beta1/SpeechTranslationServiceClientTest.php
@@ -0,0 +1,151 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return SpeechTranslationServiceClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new SpeechTranslationServiceClient($options);
+ }
+
+ /** @test */
+ public function streamingTranslateSpeechTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new StreamingTranslateSpeechResponse();
+ $transport->addResponse($expectedResponse);
+ $expectedResponse2 = new StreamingTranslateSpeechResponse();
+ $transport->addResponse($expectedResponse2);
+ $expectedResponse3 = new StreamingTranslateSpeechResponse();
+ $transport->addResponse($expectedResponse3);
+ // Mock request
+ $request = new StreamingTranslateSpeechRequest();
+ $request2 = new StreamingTranslateSpeechRequest();
+ $request3 = new StreamingTranslateSpeechRequest();
+ $bidi = $gapicClient->streamingTranslateSpeech();
+ $this->assertInstanceOf(BidiStream::class, $bidi);
+ $bidi->write($request);
+ $responses = [];
+ $responses[] = $bidi->read();
+ $bidi->writeAll([
+ $request2,
+ $request3,
+ ]);
+ foreach ($bidi->closeWriteAndReadAll() as $response) {
+ $responses[] = $response;
+ }
+
+ $expectedResponses = [];
+ $expectedResponses[] = $expectedResponse;
+ $expectedResponses[] = $expectedResponse2;
+ $expectedResponses[] = $expectedResponse3;
+ $this->assertEquals($expectedResponses, $responses);
+ $createStreamRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($createStreamRequests));
+ $streamFuncCall = $createStreamRequests[0]->getFuncCall();
+ $streamRequestObject = $createStreamRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.mediatranslation.v1beta1.SpeechTranslationService/StreamingTranslateSpeech', $streamFuncCall);
+ $this->assertNull($streamRequestObject);
+ $callObjects = $transport->popCallObjects();
+ $this->assertSame(1, count($callObjects));
+ $bidiCall = $callObjects[0];
+ $writeRequests = $bidiCall->popReceivedCalls();
+ $expectedRequests = [];
+ $expectedRequests[] = $request;
+ $expectedRequests[] = $request2;
+ $expectedRequests[] = $request3;
+ $this->assertEquals($expectedRequests, $writeRequests);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function streamingTranslateSpeechExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->setStreamingStatus($status);
+ $this->assertTrue($transport->isExhausted());
+ $bidi = $gapicClient->streamingTranslateSpeech();
+ $results = $bidi->closeWriteAndReadAll();
+ try {
+ iterator_to_array($results);
+ // If the close stream method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/Memcache/v1/proto/src/GPBMetadata/Google/Cloud/Memcache/V1/CloudMemcache.php b/owl-bot-staging/Memcache/v1/proto/src/GPBMetadata/Google/Cloud/Memcache/V1/CloudMemcache.php
new file mode 100644
index 000000000000..b978df5fc7fe
Binary files /dev/null and b/owl-bot-staging/Memcache/v1/proto/src/GPBMetadata/Google/Cloud/Memcache/V1/CloudMemcache.php differ
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/ApplyParametersRequest.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/ApplyParametersRequest.php
new file mode 100644
index 000000000000..e950bb56548d
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/ApplyParametersRequest.php
@@ -0,0 +1,168 @@
+google.cloud.memcache.v1.ApplyParametersRequest
+ */
+class ApplyParametersRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name of the Memcached instance for which parameter group updates
+ * should be applied.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Nodes to which the instance-level parameter group is applied.
+ *
+ * Generated from protobuf field repeated string node_ids = 2;
+ */
+ private $node_ids;
+ /**
+ * Whether to apply instance-level parameter group to all nodes. If set to
+ * true, users are restricted from specifying individual nodes, and
+ * `ApplyParameters` updates all nodes within the instance.
+ *
+ * Generated from protobuf field bool apply_all = 3;
+ */
+ protected $apply_all = false;
+
+ /**
+ * @param string $name Required. Resource name of the Memcached instance for which parameter group updates
+ * should be applied. Please see
+ * {@see CloudMemcacheClient::instanceName()} for help formatting this field.
+ * @param string[] $nodeIds Nodes to which the instance-level parameter group is applied.
+ * @param bool $applyAll Whether to apply instance-level parameter group to all nodes. If set to
+ * true, users are restricted from specifying individual nodes, and
+ * `ApplyParameters` updates all nodes within the instance.
+ *
+ * @return \Google\Cloud\Memcache\V1\ApplyParametersRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name, array $nodeIds, bool $applyAll): self
+ {
+ return (new self())
+ ->setName($name)
+ ->setNodeIds($nodeIds)
+ ->setApplyAll($applyAll);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Resource name of the Memcached instance for which parameter group updates
+ * should be applied.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $node_ids
+ * Nodes to which the instance-level parameter group is applied.
+ * @type bool $apply_all
+ * Whether to apply instance-level parameter group to all nodes. If set to
+ * true, users are restricted from specifying individual nodes, and
+ * `ApplyParameters` updates all nodes within the instance.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name of the Memcached instance for which parameter group updates
+ * should be applied.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Resource name of the Memcached instance for which parameter group updates
+ * should be applied.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Nodes to which the instance-level parameter group is applied.
+ *
+ * Generated from protobuf field repeated string node_ids = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getNodeIds()
+ {
+ return $this->node_ids;
+ }
+
+ /**
+ * Nodes to which the instance-level parameter group is applied.
+ *
+ * Generated from protobuf field repeated string node_ids = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setNodeIds($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->node_ids = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Whether to apply instance-level parameter group to all nodes. If set to
+ * true, users are restricted from specifying individual nodes, and
+ * `ApplyParameters` updates all nodes within the instance.
+ *
+ * Generated from protobuf field bool apply_all = 3;
+ * @return bool
+ */
+ public function getApplyAll()
+ {
+ return $this->apply_all;
+ }
+
+ /**
+ * Whether to apply instance-level parameter group to all nodes. If set to
+ * true, users are restricted from specifying individual nodes, and
+ * `ApplyParameters` updates all nodes within the instance.
+ *
+ * Generated from protobuf field bool apply_all = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setApplyAll($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->apply_all = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/CreateInstanceRequest.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/CreateInstanceRequest.php
new file mode 100644
index 000000000000..0557bc075057
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/CreateInstanceRequest.php
@@ -0,0 +1,210 @@
+google.cloud.memcache.v1.CreateInstanceRequest
+ */
+class CreateInstanceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource name of the instance location using the form:
+ * `projects/{project_id}/locations/{location_id}`
+ * where `location_id` refers to a GCP region
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The logical name of the Memcached instance in the user
+ * project with the following restrictions:
+ * * Must contain only lowercase letters, numbers, and hyphens.
+ * * Must start with a letter.
+ * * Must be between 1-40 characters.
+ * * Must end with a number or a letter.
+ * * Must be unique within the user project / location.
+ * If any of the above are not met, the API raises an invalid argument error.
+ *
+ * Generated from protobuf field string instance_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $instance_id = '';
+ /**
+ * Required. A Memcached Instance
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance instance = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $instance = null;
+
+ /**
+ * @param string $parent Required. The resource name of the instance location using the form:
+ * `projects/{project_id}/locations/{location_id}`
+ * where `location_id` refers to a GCP region
+ * Please see {@see CloudMemcacheClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\Memcache\V1\Instance $instance Required. A Memcached Instance
+ * @param string $instanceId Required. The logical name of the Memcached instance in the user
+ * project with the following restrictions:
+ *
+ * * Must contain only lowercase letters, numbers, and hyphens.
+ * * Must start with a letter.
+ * * Must be between 1-40 characters.
+ * * Must end with a number or a letter.
+ * * Must be unique within the user project / location.
+ *
+ * If any of the above are not met, the API raises an invalid argument error.
+ *
+ * @return \Google\Cloud\Memcache\V1\CreateInstanceRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\Memcache\V1\Instance $instance, string $instanceId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setInstance($instance)
+ ->setInstanceId($instanceId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The resource name of the instance location using the form:
+ * `projects/{project_id}/locations/{location_id}`
+ * where `location_id` refers to a GCP region
+ * @type string $instance_id
+ * Required. The logical name of the Memcached instance in the user
+ * project with the following restrictions:
+ * * Must contain only lowercase letters, numbers, and hyphens.
+ * * Must start with a letter.
+ * * Must be between 1-40 characters.
+ * * Must end with a number or a letter.
+ * * Must be unique within the user project / location.
+ * If any of the above are not met, the API raises an invalid argument error.
+ * @type \Google\Cloud\Memcache\V1\Instance $instance
+ * Required. A Memcached Instance
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource name of the instance location using the form:
+ * `projects/{project_id}/locations/{location_id}`
+ * where `location_id` refers to a GCP region
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The resource name of the instance location using the form:
+ * `projects/{project_id}/locations/{location_id}`
+ * where `location_id` refers to a GCP region
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The logical name of the Memcached instance in the user
+ * project with the following restrictions:
+ * * Must contain only lowercase letters, numbers, and hyphens.
+ * * Must start with a letter.
+ * * Must be between 1-40 characters.
+ * * Must end with a number or a letter.
+ * * Must be unique within the user project / location.
+ * If any of the above are not met, the API raises an invalid argument error.
+ *
+ * Generated from protobuf field string instance_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getInstanceId()
+ {
+ return $this->instance_id;
+ }
+
+ /**
+ * Required. The logical name of the Memcached instance in the user
+ * project with the following restrictions:
+ * * Must contain only lowercase letters, numbers, and hyphens.
+ * * Must start with a letter.
+ * * Must be between 1-40 characters.
+ * * Must end with a number or a letter.
+ * * Must be unique within the user project / location.
+ * If any of the above are not met, the API raises an invalid argument error.
+ *
+ * Generated from protobuf field string instance_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setInstanceId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->instance_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. A Memcached Instance
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance instance = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Memcache\V1\Instance|null
+ */
+ public function getInstance()
+ {
+ return $this->instance;
+ }
+
+ public function hasInstance()
+ {
+ return isset($this->instance);
+ }
+
+ public function clearInstance()
+ {
+ unset($this->instance);
+ }
+
+ /**
+ * Required. A Memcached Instance
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance instance = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Memcache\V1\Instance $var
+ * @return $this
+ */
+ public function setInstance($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Memcache\V1\Instance::class);
+ $this->instance = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/DeleteInstanceRequest.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/DeleteInstanceRequest.php
new file mode 100644
index 000000000000..b72fed64dd51
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/DeleteInstanceRequest.php
@@ -0,0 +1,91 @@
+google.cloud.memcache.v1.DeleteInstanceRequest
+ */
+class DeleteInstanceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Memcached instance resource name in the format:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * where `location_id` refers to a GCP region
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Memcached instance resource name in the format:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * where `location_id` refers to a GCP region
+ * Please see {@see CloudMemcacheClient::instanceName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Memcache\V1\DeleteInstanceRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Memcached instance resource name in the format:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * where `location_id` refers to a GCP region
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Memcached instance resource name in the format:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * where `location_id` refers to a GCP region
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Memcached instance resource name in the format:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * where `location_id` refers to a GCP region
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/GetInstanceRequest.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/GetInstanceRequest.php
new file mode 100644
index 000000000000..68579a961bf6
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/GetInstanceRequest.php
@@ -0,0 +1,91 @@
+google.cloud.memcache.v1.GetInstanceRequest
+ */
+class GetInstanceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Memcached instance resource name in the format:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * where `location_id` refers to a GCP region
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Memcached instance resource name in the format:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * where `location_id` refers to a GCP region
+ * Please see {@see CloudMemcacheClient::instanceName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Memcache\V1\GetInstanceRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Memcached instance resource name in the format:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * where `location_id` refers to a GCP region
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Memcached instance resource name in the format:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * where `location_id` refers to a GCP region
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Memcached instance resource name in the format:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * where `location_id` refers to a GCP region
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance.php
new file mode 100644
index 000000000000..ae899b8ef090
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance.php
@@ -0,0 +1,809 @@
+google.cloud.memcache.v1.Instance
+ */
+class Instance extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Unique name of the resource in this scope including project and
+ * location using the form:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * Note: Memcached instances are managed and addressed at the regional level
+ * so `location_id` here refers to a Google Cloud region; however, users may
+ * choose which zones Memcached nodes should be provisioned in within an
+ * instance. Refer to [zones][google.cloud.memcache.v1.Instance.zones] field for more details.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $name = '';
+ /**
+ * User provided name for the instance, which is only used for display
+ * purposes. Cannot be more than 80 characters.
+ *
+ * Generated from protobuf field string display_name = 2;
+ */
+ protected $display_name = '';
+ /**
+ * Resource labels to represent user-provided metadata.
+ * Refer to cloud documentation on labels for more details.
+ * https://cloud.google.com/compute/docs/labeling-resources
+ *
+ * Generated from protobuf field map labels = 3;
+ */
+ private $labels;
+ /**
+ * The full name of the Google Compute Engine
+ * [network](/compute/docs/networks-and-firewalls#networks) to which the
+ * instance is connected. If left unspecified, the `default` network
+ * will be used.
+ *
+ * Generated from protobuf field string authorized_network = 4;
+ */
+ protected $authorized_network = '';
+ /**
+ * Zones in which Memcached nodes should be provisioned.
+ * Memcached nodes will be equally distributed across these zones. If not
+ * provided, the service will by default create nodes in all zones in the
+ * region for the instance.
+ *
+ * Generated from protobuf field repeated string zones = 5;
+ */
+ private $zones;
+ /**
+ * Required. Number of nodes in the Memcached instance.
+ *
+ * Generated from protobuf field int32 node_count = 6 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $node_count = 0;
+ /**
+ * Required. Configuration for Memcached nodes.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance.NodeConfig node_config = 7 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $node_config = null;
+ /**
+ * The major version of Memcached software.
+ * If not provided, latest supported version will be used. Currently the
+ * latest supported major version is `MEMCACHE_1_5`.
+ * The minor version will be automatically determined by our system based on
+ * the latest supported minor version.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MemcacheVersion memcache_version = 9;
+ */
+ protected $memcache_version = 0;
+ /**
+ * User defined parameters to apply to the memcached process
+ * on each node.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MemcacheParameters parameters = 11;
+ */
+ protected $parameters = null;
+ /**
+ * Output only. List of Memcached nodes.
+ * Refer to [Node][google.cloud.memcache.v1.Instance.Node] message for more details.
+ *
+ * Generated from protobuf field repeated .google.cloud.memcache.v1.Instance.Node memcache_nodes = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $memcache_nodes;
+ /**
+ * Output only. The time the instance was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The time the instance was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * Output only. The state of this Memcached instance.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance.State state = 15 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. The full version of memcached server running on this instance.
+ * System automatically determines the full memcached version for an instance
+ * based on the input MemcacheVersion.
+ * The full version format will be "memcached-1.5.16".
+ *
+ * Generated from protobuf field string memcache_full_version = 18 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $memcache_full_version = '';
+ /**
+ * List of messages that describe the current state of the Memcached instance.
+ *
+ * Generated from protobuf field repeated .google.cloud.memcache.v1.Instance.InstanceMessage instance_messages = 19;
+ */
+ private $instance_messages;
+ /**
+ * Output only. Endpoint for the Discovery API.
+ *
+ * Generated from protobuf field string discovery_endpoint = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $discovery_endpoint = '';
+ /**
+ * The maintenance policy for the instance. If not provided,
+ * the maintenance event will be performed based on Memorystore
+ * internal rollout schedule.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MaintenancePolicy maintenance_policy = 21;
+ */
+ protected $maintenance_policy = null;
+ /**
+ * Output only. Published maintenance schedule.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MaintenanceSchedule maintenance_schedule = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $maintenance_schedule = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Unique name of the resource in this scope including project and
+ * location using the form:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * Note: Memcached instances are managed and addressed at the regional level
+ * so `location_id` here refers to a Google Cloud region; however, users may
+ * choose which zones Memcached nodes should be provisioned in within an
+ * instance. Refer to [zones][google.cloud.memcache.v1.Instance.zones] field for more details.
+ * @type string $display_name
+ * User provided name for the instance, which is only used for display
+ * purposes. Cannot be more than 80 characters.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Resource labels to represent user-provided metadata.
+ * Refer to cloud documentation on labels for more details.
+ * https://cloud.google.com/compute/docs/labeling-resources
+ * @type string $authorized_network
+ * The full name of the Google Compute Engine
+ * [network](/compute/docs/networks-and-firewalls#networks) to which the
+ * instance is connected. If left unspecified, the `default` network
+ * will be used.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $zones
+ * Zones in which Memcached nodes should be provisioned.
+ * Memcached nodes will be equally distributed across these zones. If not
+ * provided, the service will by default create nodes in all zones in the
+ * region for the instance.
+ * @type int $node_count
+ * Required. Number of nodes in the Memcached instance.
+ * @type \Google\Cloud\Memcache\V1\Instance\NodeConfig $node_config
+ * Required. Configuration for Memcached nodes.
+ * @type int $memcache_version
+ * The major version of Memcached software.
+ * If not provided, latest supported version will be used. Currently the
+ * latest supported major version is `MEMCACHE_1_5`.
+ * The minor version will be automatically determined by our system based on
+ * the latest supported minor version.
+ * @type \Google\Cloud\Memcache\V1\MemcacheParameters $parameters
+ * User defined parameters to apply to the memcached process
+ * on each node.
+ * @type array<\Google\Cloud\Memcache\V1\Instance\Node>|\Google\Protobuf\Internal\RepeatedField $memcache_nodes
+ * Output only. List of Memcached nodes.
+ * Refer to [Node][google.cloud.memcache.v1.Instance.Node] message for more details.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time the instance was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time the instance was updated.
+ * @type int $state
+ * Output only. The state of this Memcached instance.
+ * @type string $memcache_full_version
+ * Output only. The full version of memcached server running on this instance.
+ * System automatically determines the full memcached version for an instance
+ * based on the input MemcacheVersion.
+ * The full version format will be "memcached-1.5.16".
+ * @type array<\Google\Cloud\Memcache\V1\Instance\InstanceMessage>|\Google\Protobuf\Internal\RepeatedField $instance_messages
+ * List of messages that describe the current state of the Memcached instance.
+ * @type string $discovery_endpoint
+ * Output only. Endpoint for the Discovery API.
+ * @type \Google\Cloud\Memcache\V1\MaintenancePolicy $maintenance_policy
+ * The maintenance policy for the instance. If not provided,
+ * the maintenance event will be performed based on Memorystore
+ * internal rollout schedule.
+ * @type \Google\Cloud\Memcache\V1\MaintenanceSchedule $maintenance_schedule
+ * Output only. Published maintenance schedule.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Unique name of the resource in this scope including project and
+ * location using the form:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * Note: Memcached instances are managed and addressed at the regional level
+ * so `location_id` here refers to a Google Cloud region; however, users may
+ * choose which zones Memcached nodes should be provisioned in within an
+ * instance. Refer to [zones][google.cloud.memcache.v1.Instance.zones] field for more details.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Unique name of the resource in this scope including project and
+ * location using the form:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * Note: Memcached instances are managed and addressed at the regional level
+ * so `location_id` here refers to a Google Cloud region; however, users may
+ * choose which zones Memcached nodes should be provisioned in within an
+ * instance. Refer to [zones][google.cloud.memcache.v1.Instance.zones] field for more details.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * User provided name for the instance, which is only used for display
+ * purposes. Cannot be more than 80 characters.
+ *
+ * Generated from protobuf field string display_name = 2;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * User provided name for the instance, which is only used for display
+ * purposes. Cannot be more than 80 characters.
+ *
+ * Generated from protobuf field string display_name = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Resource labels to represent user-provided metadata.
+ * Refer to cloud documentation on labels for more details.
+ * https://cloud.google.com/compute/docs/labeling-resources
+ *
+ * Generated from protobuf field map labels = 3;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Resource labels to represent user-provided metadata.
+ * Refer to cloud documentation on labels for more details.
+ * https://cloud.google.com/compute/docs/labeling-resources
+ *
+ * Generated from protobuf field map labels = 3;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->labels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The full name of the Google Compute Engine
+ * [network](/compute/docs/networks-and-firewalls#networks) to which the
+ * instance is connected. If left unspecified, the `default` network
+ * will be used.
+ *
+ * Generated from protobuf field string authorized_network = 4;
+ * @return string
+ */
+ public function getAuthorizedNetwork()
+ {
+ return $this->authorized_network;
+ }
+
+ /**
+ * The full name of the Google Compute Engine
+ * [network](/compute/docs/networks-and-firewalls#networks) to which the
+ * instance is connected. If left unspecified, the `default` network
+ * will be used.
+ *
+ * Generated from protobuf field string authorized_network = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setAuthorizedNetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->authorized_network = $var;
+
+ return $this;
+ }
+
+ /**
+ * Zones in which Memcached nodes should be provisioned.
+ * Memcached nodes will be equally distributed across these zones. If not
+ * provided, the service will by default create nodes in all zones in the
+ * region for the instance.
+ *
+ * Generated from protobuf field repeated string zones = 5;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getZones()
+ {
+ return $this->zones;
+ }
+
+ /**
+ * Zones in which Memcached nodes should be provisioned.
+ * Memcached nodes will be equally distributed across these zones. If not
+ * provided, the service will by default create nodes in all zones in the
+ * region for the instance.
+ *
+ * Generated from protobuf field repeated string zones = 5;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setZones($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->zones = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Required. Number of nodes in the Memcached instance.
+ *
+ * Generated from protobuf field int32 node_count = 6 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getNodeCount()
+ {
+ return $this->node_count;
+ }
+
+ /**
+ * Required. Number of nodes in the Memcached instance.
+ *
+ * Generated from protobuf field int32 node_count = 6 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setNodeCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->node_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Configuration for Memcached nodes.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance.NodeConfig node_config = 7 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Memcache\V1\Instance\NodeConfig|null
+ */
+ public function getNodeConfig()
+ {
+ return $this->node_config;
+ }
+
+ public function hasNodeConfig()
+ {
+ return isset($this->node_config);
+ }
+
+ public function clearNodeConfig()
+ {
+ unset($this->node_config);
+ }
+
+ /**
+ * Required. Configuration for Memcached nodes.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance.NodeConfig node_config = 7 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Memcache\V1\Instance\NodeConfig $var
+ * @return $this
+ */
+ public function setNodeConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Memcache\V1\Instance\NodeConfig::class);
+ $this->node_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The major version of Memcached software.
+ * If not provided, latest supported version will be used. Currently the
+ * latest supported major version is `MEMCACHE_1_5`.
+ * The minor version will be automatically determined by our system based on
+ * the latest supported minor version.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MemcacheVersion memcache_version = 9;
+ * @return int
+ */
+ public function getMemcacheVersion()
+ {
+ return $this->memcache_version;
+ }
+
+ /**
+ * The major version of Memcached software.
+ * If not provided, latest supported version will be used. Currently the
+ * latest supported major version is `MEMCACHE_1_5`.
+ * The minor version will be automatically determined by our system based on
+ * the latest supported minor version.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MemcacheVersion memcache_version = 9;
+ * @param int $var
+ * @return $this
+ */
+ public function setMemcacheVersion($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Memcache\V1\MemcacheVersion::class);
+ $this->memcache_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * User defined parameters to apply to the memcached process
+ * on each node.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MemcacheParameters parameters = 11;
+ * @return \Google\Cloud\Memcache\V1\MemcacheParameters|null
+ */
+ public function getParameters()
+ {
+ return $this->parameters;
+ }
+
+ public function hasParameters()
+ {
+ return isset($this->parameters);
+ }
+
+ public function clearParameters()
+ {
+ unset($this->parameters);
+ }
+
+ /**
+ * User defined parameters to apply to the memcached process
+ * on each node.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MemcacheParameters parameters = 11;
+ * @param \Google\Cloud\Memcache\V1\MemcacheParameters $var
+ * @return $this
+ */
+ public function setParameters($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Memcache\V1\MemcacheParameters::class);
+ $this->parameters = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. List of Memcached nodes.
+ * Refer to [Node][google.cloud.memcache.v1.Instance.Node] message for more details.
+ *
+ * Generated from protobuf field repeated .google.cloud.memcache.v1.Instance.Node memcache_nodes = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getMemcacheNodes()
+ {
+ return $this->memcache_nodes;
+ }
+
+ /**
+ * Output only. List of Memcached nodes.
+ * Refer to [Node][google.cloud.memcache.v1.Instance.Node] message for more details.
+ *
+ * Generated from protobuf field repeated .google.cloud.memcache.v1.Instance.Node memcache_nodes = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\Memcache\V1\Instance\Node>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setMemcacheNodes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Memcache\V1\Instance\Node::class);
+ $this->memcache_nodes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time the instance was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The time the instance was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time the instance was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The time the instance was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The state of this Memcached instance.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance.State state = 15 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The state of this Memcached instance.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance.State state = 15 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Memcache\V1\Instance\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The full version of memcached server running on this instance.
+ * System automatically determines the full memcached version for an instance
+ * based on the input MemcacheVersion.
+ * The full version format will be "memcached-1.5.16".
+ *
+ * Generated from protobuf field string memcache_full_version = 18 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getMemcacheFullVersion()
+ {
+ return $this->memcache_full_version;
+ }
+
+ /**
+ * Output only. The full version of memcached server running on this instance.
+ * System automatically determines the full memcached version for an instance
+ * based on the input MemcacheVersion.
+ * The full version format will be "memcached-1.5.16".
+ *
+ * Generated from protobuf field string memcache_full_version = 18 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setMemcacheFullVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->memcache_full_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * List of messages that describe the current state of the Memcached instance.
+ *
+ * Generated from protobuf field repeated .google.cloud.memcache.v1.Instance.InstanceMessage instance_messages = 19;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getInstanceMessages()
+ {
+ return $this->instance_messages;
+ }
+
+ /**
+ * List of messages that describe the current state of the Memcached instance.
+ *
+ * Generated from protobuf field repeated .google.cloud.memcache.v1.Instance.InstanceMessage instance_messages = 19;
+ * @param array<\Google\Cloud\Memcache\V1\Instance\InstanceMessage>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setInstanceMessages($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Memcache\V1\Instance\InstanceMessage::class);
+ $this->instance_messages = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Endpoint for the Discovery API.
+ *
+ * Generated from protobuf field string discovery_endpoint = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getDiscoveryEndpoint()
+ {
+ return $this->discovery_endpoint;
+ }
+
+ /**
+ * Output only. Endpoint for the Discovery API.
+ *
+ * Generated from protobuf field string discovery_endpoint = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setDiscoveryEndpoint($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->discovery_endpoint = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maintenance policy for the instance. If not provided,
+ * the maintenance event will be performed based on Memorystore
+ * internal rollout schedule.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MaintenancePolicy maintenance_policy = 21;
+ * @return \Google\Cloud\Memcache\V1\MaintenancePolicy|null
+ */
+ public function getMaintenancePolicy()
+ {
+ return $this->maintenance_policy;
+ }
+
+ public function hasMaintenancePolicy()
+ {
+ return isset($this->maintenance_policy);
+ }
+
+ public function clearMaintenancePolicy()
+ {
+ unset($this->maintenance_policy);
+ }
+
+ /**
+ * The maintenance policy for the instance. If not provided,
+ * the maintenance event will be performed based on Memorystore
+ * internal rollout schedule.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MaintenancePolicy maintenance_policy = 21;
+ * @param \Google\Cloud\Memcache\V1\MaintenancePolicy $var
+ * @return $this
+ */
+ public function setMaintenancePolicy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Memcache\V1\MaintenancePolicy::class);
+ $this->maintenance_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Published maintenance schedule.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MaintenanceSchedule maintenance_schedule = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Memcache\V1\MaintenanceSchedule|null
+ */
+ public function getMaintenanceSchedule()
+ {
+ return $this->maintenance_schedule;
+ }
+
+ public function hasMaintenanceSchedule()
+ {
+ return isset($this->maintenance_schedule);
+ }
+
+ public function clearMaintenanceSchedule()
+ {
+ unset($this->maintenance_schedule);
+ }
+
+ /**
+ * Output only. Published maintenance schedule.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MaintenanceSchedule maintenance_schedule = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Memcache\V1\MaintenanceSchedule $var
+ * @return $this
+ */
+ public function setMaintenanceSchedule($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Memcache\V1\MaintenanceSchedule::class);
+ $this->maintenance_schedule = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/InstanceMessage.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/InstanceMessage.php
new file mode 100644
index 000000000000..981abe10b8b6
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/InstanceMessage.php
@@ -0,0 +1,102 @@
+google.cloud.memcache.v1.Instance.InstanceMessage
+ */
+class InstanceMessage extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A code that correspond to one type of user-facing message.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance.InstanceMessage.Code code = 1;
+ */
+ protected $code = 0;
+ /**
+ * Message on memcached instance which will be exposed to users.
+ *
+ * Generated from protobuf field string message = 2;
+ */
+ protected $message = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $code
+ * A code that correspond to one type of user-facing message.
+ * @type string $message
+ * Message on memcached instance which will be exposed to users.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A code that correspond to one type of user-facing message.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance.InstanceMessage.Code code = 1;
+ * @return int
+ */
+ public function getCode()
+ {
+ return $this->code;
+ }
+
+ /**
+ * A code that correspond to one type of user-facing message.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance.InstanceMessage.Code code = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setCode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Memcache\V1\Instance\InstanceMessage\Code::class);
+ $this->code = $var;
+
+ return $this;
+ }
+
+ /**
+ * Message on memcached instance which will be exposed to users.
+ *
+ * Generated from protobuf field string message = 2;
+ * @return string
+ */
+ public function getMessage()
+ {
+ return $this->message;
+ }
+
+ /**
+ * Message on memcached instance which will be exposed to users.
+ *
+ * Generated from protobuf field string message = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->message = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(InstanceMessage::class, \Google\Cloud\Memcache\V1\Instance_InstanceMessage::class);
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/InstanceMessage/Code.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/InstanceMessage/Code.php
new file mode 100644
index 000000000000..e0f20c3adb3f
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/InstanceMessage/Code.php
@@ -0,0 +1,55 @@
+google.cloud.memcache.v1.Instance.InstanceMessage.Code
+ */
+class Code
+{
+ /**
+ * Message Code not set.
+ *
+ * Generated from protobuf enum CODE_UNSPECIFIED = 0;
+ */
+ const CODE_UNSPECIFIED = 0;
+ /**
+ * Memcached nodes are distributed unevenly.
+ *
+ * Generated from protobuf enum ZONE_DISTRIBUTION_UNBALANCED = 1;
+ */
+ const ZONE_DISTRIBUTION_UNBALANCED = 1;
+
+ private static $valueToName = [
+ self::CODE_UNSPECIFIED => 'CODE_UNSPECIFIED',
+ self::ZONE_DISTRIBUTION_UNBALANCED => 'ZONE_DISTRIBUTION_UNBALANCED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Code::class, \Google\Cloud\Memcache\V1\Instance_InstanceMessage_Code::class);
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/Node.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/Node.php
new file mode 100644
index 000000000000..85f5a875b821
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/Node.php
@@ -0,0 +1,256 @@
+google.cloud.memcache.v1.Instance.Node
+ */
+class Node extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Identifier of the Memcached node. The node id does not
+ * include project or location like the Memcached instance name.
+ *
+ * Generated from protobuf field string node_id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $node_id = '';
+ /**
+ * Output only. Location (GCP Zone) for the Memcached node.
+ *
+ * Generated from protobuf field string zone = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $zone = '';
+ /**
+ * Output only. Current state of the Memcached node.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance.Node.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. Hostname or IP address of the Memcached node used by the
+ * clients to connect to the Memcached server on this node.
+ *
+ * Generated from protobuf field string host = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $host = '';
+ /**
+ * Output only. The port number of the Memcached server on this node.
+ *
+ * Generated from protobuf field int32 port = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $port = 0;
+ /**
+ * User defined parameters currently applied to the node.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MemcacheParameters parameters = 6;
+ */
+ protected $parameters = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $node_id
+ * Output only. Identifier of the Memcached node. The node id does not
+ * include project or location like the Memcached instance name.
+ * @type string $zone
+ * Output only. Location (GCP Zone) for the Memcached node.
+ * @type int $state
+ * Output only. Current state of the Memcached node.
+ * @type string $host
+ * Output only. Hostname or IP address of the Memcached node used by the
+ * clients to connect to the Memcached server on this node.
+ * @type int $port
+ * Output only. The port number of the Memcached server on this node.
+ * @type \Google\Cloud\Memcache\V1\MemcacheParameters $parameters
+ * User defined parameters currently applied to the node.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Identifier of the Memcached node. The node id does not
+ * include project or location like the Memcached instance name.
+ *
+ * Generated from protobuf field string node_id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getNodeId()
+ {
+ return $this->node_id;
+ }
+
+ /**
+ * Output only. Identifier of the Memcached node. The node id does not
+ * include project or location like the Memcached instance name.
+ *
+ * Generated from protobuf field string node_id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setNodeId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->node_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Location (GCP Zone) for the Memcached node.
+ *
+ * Generated from protobuf field string zone = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getZone()
+ {
+ return $this->zone;
+ }
+
+ /**
+ * Output only. Location (GCP Zone) for the Memcached node.
+ *
+ * Generated from protobuf field string zone = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setZone($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->zone = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Current state of the Memcached node.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance.Node.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. Current state of the Memcached node.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance.Node.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Memcache\V1\Instance\Node\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Hostname or IP address of the Memcached node used by the
+ * clients to connect to the Memcached server on this node.
+ *
+ * Generated from protobuf field string host = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getHost()
+ {
+ return $this->host;
+ }
+
+ /**
+ * Output only. Hostname or IP address of the Memcached node used by the
+ * clients to connect to the Memcached server on this node.
+ *
+ * Generated from protobuf field string host = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setHost($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->host = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The port number of the Memcached server on this node.
+ *
+ * Generated from protobuf field int32 port = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getPort()
+ {
+ return $this->port;
+ }
+
+ /**
+ * Output only. The port number of the Memcached server on this node.
+ *
+ * Generated from protobuf field int32 port = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setPort($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->port = $var;
+
+ return $this;
+ }
+
+ /**
+ * User defined parameters currently applied to the node.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MemcacheParameters parameters = 6;
+ * @return \Google\Cloud\Memcache\V1\MemcacheParameters|null
+ */
+ public function getParameters()
+ {
+ return $this->parameters;
+ }
+
+ public function hasParameters()
+ {
+ return isset($this->parameters);
+ }
+
+ public function clearParameters()
+ {
+ unset($this->parameters);
+ }
+
+ /**
+ * User defined parameters currently applied to the node.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MemcacheParameters parameters = 6;
+ * @param \Google\Cloud\Memcache\V1\MemcacheParameters $var
+ * @return $this
+ */
+ public function setParameters($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Memcache\V1\MemcacheParameters::class);
+ $this->parameters = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Node::class, \Google\Cloud\Memcache\V1\Instance_Node::class);
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/Node/State.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/Node/State.php
new file mode 100644
index 000000000000..b93e40ce84be
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/Node/State.php
@@ -0,0 +1,78 @@
+google.cloud.memcache.v1.Instance.Node.State
+ */
+class State
+{
+ /**
+ * Node state is not set.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * Node is being created.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * Node has been created and ready to be used.
+ *
+ * Generated from protobuf enum READY = 2;
+ */
+ const READY = 2;
+ /**
+ * Node is being deleted.
+ *
+ * Generated from protobuf enum DELETING = 3;
+ */
+ const DELETING = 3;
+ /**
+ * Node is being updated.
+ *
+ * Generated from protobuf enum UPDATING = 4;
+ */
+ const UPDATING = 4;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::READY => 'READY',
+ self::DELETING => 'DELETING',
+ self::UPDATING => 'UPDATING',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(State::class, \Google\Cloud\Memcache\V1\Instance_Node_State::class);
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/NodeConfig.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/NodeConfig.php
new file mode 100644
index 000000000000..042d6658735f
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/NodeConfig.php
@@ -0,0 +1,104 @@
+google.cloud.memcache.v1.Instance.NodeConfig
+ */
+class NodeConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Number of cpus per Memcached node.
+ *
+ * Generated from protobuf field int32 cpu_count = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $cpu_count = 0;
+ /**
+ * Required. Memory size in MiB for each Memcached node.
+ *
+ * Generated from protobuf field int32 memory_size_mb = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $memory_size_mb = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $cpu_count
+ * Required. Number of cpus per Memcached node.
+ * @type int $memory_size_mb
+ * Required. Memory size in MiB for each Memcached node.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Number of cpus per Memcached node.
+ *
+ * Generated from protobuf field int32 cpu_count = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getCpuCount()
+ {
+ return $this->cpu_count;
+ }
+
+ /**
+ * Required. Number of cpus per Memcached node.
+ *
+ * Generated from protobuf field int32 cpu_count = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setCpuCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->cpu_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Memory size in MiB for each Memcached node.
+ *
+ * Generated from protobuf field int32 memory_size_mb = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getMemorySizeMb()
+ {
+ return $this->memory_size_mb;
+ }
+
+ /**
+ * Required. Memory size in MiB for each Memcached node.
+ *
+ * Generated from protobuf field int32 memory_size_mb = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setMemorySizeMb($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->memory_size_mb = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(NodeConfig::class, \Google\Cloud\Memcache\V1\Instance_NodeConfig::class);
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/State.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/State.php
new file mode 100644
index 000000000000..bd965a0eb907
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/Instance/State.php
@@ -0,0 +1,86 @@
+google.cloud.memcache.v1.Instance.State
+ */
+class State
+{
+ /**
+ * State not set.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * Memcached instance is being created.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * Memcached instance has been created and ready to be used.
+ *
+ * Generated from protobuf enum READY = 2;
+ */
+ const READY = 2;
+ /**
+ * Memcached instance is updating configuration such as maintenance policy
+ * and schedule.
+ *
+ * Generated from protobuf enum UPDATING = 3;
+ */
+ const UPDATING = 3;
+ /**
+ * Memcached instance is being deleted.
+ *
+ * Generated from protobuf enum DELETING = 4;
+ */
+ const DELETING = 4;
+ /**
+ * Memcached instance is going through maintenance, e.g. data plane rollout.
+ *
+ * Generated from protobuf enum PERFORMING_MAINTENANCE = 5;
+ */
+ const PERFORMING_MAINTENANCE = 5;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::READY => 'READY',
+ self::UPDATING => 'UPDATING',
+ self::DELETING => 'DELETING',
+ self::PERFORMING_MAINTENANCE => 'PERFORMING_MAINTENANCE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(State::class, \Google\Cloud\Memcache\V1\Instance_State::class);
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/ListInstancesRequest.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/ListInstancesRequest.php
new file mode 100644
index 000000000000..8a5c9bb572c6
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/ListInstancesRequest.php
@@ -0,0 +1,251 @@
+google.cloud.memcache.v1.ListInstancesRequest
+ */
+class ListInstancesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource name of the instance location using the form:
+ * `projects/{project_id}/locations/{location_id}`
+ * where `location_id` refers to a GCP region
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of items to return.
+ * If not specified, a default value of 1000 will be used by the service.
+ * Regardless of the `page_size` value, the response may include a partial
+ * list and a caller should only rely on response's
+ * [`next_page_token`][google.cloud.memcache.v1.ListInstancesResponse.next_page_token]
+ * to determine if there are more instances left to be queried.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The `next_page_token` value returned from a previous List request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * List filter. For example, exclude all Memcached instances with name as
+ * my-instance by specifying `"name != my-instance"`.
+ *
+ * Generated from protobuf field string filter = 4;
+ */
+ protected $filter = '';
+ /**
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ *
+ * Generated from protobuf field string order_by = 5;
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. The resource name of the instance location using the form:
+ * `projects/{project_id}/locations/{location_id}`
+ * where `location_id` refers to a GCP region
+ * Please see {@see CloudMemcacheClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Memcache\V1\ListInstancesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The resource name of the instance location using the form:
+ * `projects/{project_id}/locations/{location_id}`
+ * where `location_id` refers to a GCP region
+ * @type int $page_size
+ * The maximum number of items to return.
+ * If not specified, a default value of 1000 will be used by the service.
+ * Regardless of the `page_size` value, the response may include a partial
+ * list and a caller should only rely on response's
+ * [`next_page_token`][google.cloud.memcache.v1.ListInstancesResponse.next_page_token]
+ * to determine if there are more instances left to be queried.
+ * @type string $page_token
+ * The `next_page_token` value returned from a previous List request, if any.
+ * @type string $filter
+ * List filter. For example, exclude all Memcached instances with name as
+ * my-instance by specifying `"name != my-instance"`.
+ * @type string $order_by
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource name of the instance location using the form:
+ * `projects/{project_id}/locations/{location_id}`
+ * where `location_id` refers to a GCP region
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The resource name of the instance location using the form:
+ * `projects/{project_id}/locations/{location_id}`
+ * where `location_id` refers to a GCP region
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of items to return.
+ * If not specified, a default value of 1000 will be used by the service.
+ * Regardless of the `page_size` value, the response may include a partial
+ * list and a caller should only rely on response's
+ * [`next_page_token`][google.cloud.memcache.v1.ListInstancesResponse.next_page_token]
+ * to determine if there are more instances left to be queried.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of items to return.
+ * If not specified, a default value of 1000 will be used by the service.
+ * Regardless of the `page_size` value, the response may include a partial
+ * list and a caller should only rely on response's
+ * [`next_page_token`][google.cloud.memcache.v1.ListInstancesResponse.next_page_token]
+ * to determine if there are more instances left to be queried.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The `next_page_token` value returned from a previous List request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The `next_page_token` value returned from a previous List request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * List filter. For example, exclude all Memcached instances with name as
+ * my-instance by specifying `"name != my-instance"`.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * List filter. For example, exclude all Memcached instances with name as
+ * my-instance by specifying `"name != my-instance"`.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/ListInstancesResponse.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/ListInstancesResponse.php
new file mode 100644
index 000000000000..baa54f4cd391
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/ListInstancesResponse.php
@@ -0,0 +1,151 @@
+google.cloud.memcache.v1.ListInstancesResponse
+ */
+class ListInstancesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of Memcached instances in the project in the specified location,
+ * or across all locations.
+ * If the `location_id` in the parent field of the request is "-", all regions
+ * available to the project are queried, and the results aggregated.
+ *
+ * Generated from protobuf field repeated .google.cloud.memcache.v1.Instance instances = 1;
+ */
+ private $instances;
+ /**
+ * Token to retrieve the next page of results, or empty if there are no more
+ * results in the list.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Memcache\V1\Instance>|\Google\Protobuf\Internal\RepeatedField $instances
+ * A list of Memcached instances in the project in the specified location,
+ * or across all locations.
+ * If the `location_id` in the parent field of the request is "-", all regions
+ * available to the project are queried, and the results aggregated.
+ * @type string $next_page_token
+ * Token to retrieve the next page of results, or empty if there are no more
+ * results in the list.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of Memcached instances in the project in the specified location,
+ * or across all locations.
+ * If the `location_id` in the parent field of the request is "-", all regions
+ * available to the project are queried, and the results aggregated.
+ *
+ * Generated from protobuf field repeated .google.cloud.memcache.v1.Instance instances = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getInstances()
+ {
+ return $this->instances;
+ }
+
+ /**
+ * A list of Memcached instances in the project in the specified location,
+ * or across all locations.
+ * If the `location_id` in the parent field of the request is "-", all regions
+ * available to the project are queried, and the results aggregated.
+ *
+ * Generated from protobuf field repeated .google.cloud.memcache.v1.Instance instances = 1;
+ * @param array<\Google\Cloud\Memcache\V1\Instance>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setInstances($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Memcache\V1\Instance::class);
+ $this->instances = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Token to retrieve the next page of results, or empty if there are no more
+ * results in the list.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * Token to retrieve the next page of results, or empty if there are no more
+ * results in the list.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/LocationMetadata.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/LocationMetadata.php
new file mode 100644
index 000000000000..43b01dbbb3d6
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/LocationMetadata.php
@@ -0,0 +1,75 @@
+google.cloud.memcache.v1.LocationMetadata
+ */
+class LocationMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The set of available zones in the location. The map is keyed
+ * by the lowercase ID of each zone, as defined by GCE. These keys can be
+ * specified in the `zones` field when creating a Memcached instance.
+ *
+ * Generated from protobuf field map available_zones = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $available_zones;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\MapField $available_zones
+ * Output only. The set of available zones in the location. The map is keyed
+ * by the lowercase ID of each zone, as defined by GCE. These keys can be
+ * specified in the `zones` field when creating a Memcached instance.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The set of available zones in the location. The map is keyed
+ * by the lowercase ID of each zone, as defined by GCE. These keys can be
+ * specified in the `zones` field when creating a Memcached instance.
+ *
+ * Generated from protobuf field map available_zones = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAvailableZones()
+ {
+ return $this->available_zones;
+ }
+
+ /**
+ * Output only. The set of available zones in the location. The map is keyed
+ * by the lowercase ID of each zone, as defined by GCE. These keys can be
+ * specified in the `zones` field when creating a Memcached instance.
+ *
+ * Generated from protobuf field map available_zones = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAvailableZones($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Memcache\V1\ZoneMetadata::class);
+ $this->available_zones = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/MaintenancePolicy.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/MaintenancePolicy.php
new file mode 100644
index 000000000000..5bb59c83e923
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/MaintenancePolicy.php
@@ -0,0 +1,201 @@
+google.cloud.memcache.v1.MaintenancePolicy
+ */
+class MaintenancePolicy extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The time when the policy was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The time when the policy was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * Description of what this policy is for. Create/Update methods
+ * return INVALID_ARGUMENT if the length is greater than 512.
+ *
+ * Generated from protobuf field string description = 3;
+ */
+ protected $description = '';
+ /**
+ * Required. Maintenance window that is applied to resources covered by this
+ * policy. Minimum 1. For the current version, the maximum number of
+ * weekly_maintenance_windows is expected to be one.
+ *
+ * Generated from protobuf field repeated .google.cloud.memcache.v1.WeeklyMaintenanceWindow weekly_maintenance_window = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $weekly_maintenance_window;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the policy was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time when the policy was updated.
+ * @type string $description
+ * Description of what this policy is for. Create/Update methods
+ * return INVALID_ARGUMENT if the length is greater than 512.
+ * @type array<\Google\Cloud\Memcache\V1\WeeklyMaintenanceWindow>|\Google\Protobuf\Internal\RepeatedField $weekly_maintenance_window
+ * Required. Maintenance window that is applied to resources covered by this
+ * policy. Minimum 1. For the current version, the maximum number of
+ * weekly_maintenance_windows is expected to be one.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The time when the policy was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The time when the policy was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the policy was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The time when the policy was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description of what this policy is for. Create/Update methods
+ * return INVALID_ARGUMENT if the length is greater than 512.
+ *
+ * Generated from protobuf field string description = 3;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Description of what this policy is for. Create/Update methods
+ * return INVALID_ARGUMENT if the length is greater than 512.
+ *
+ * Generated from protobuf field string description = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Maintenance window that is applied to resources covered by this
+ * policy. Minimum 1. For the current version, the maximum number of
+ * weekly_maintenance_windows is expected to be one.
+ *
+ * Generated from protobuf field repeated .google.cloud.memcache.v1.WeeklyMaintenanceWindow weekly_maintenance_window = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getWeeklyMaintenanceWindow()
+ {
+ return $this->weekly_maintenance_window;
+ }
+
+ /**
+ * Required. Maintenance window that is applied to resources covered by this
+ * policy. Minimum 1. For the current version, the maximum number of
+ * weekly_maintenance_windows is expected to be one.
+ *
+ * Generated from protobuf field repeated .google.cloud.memcache.v1.WeeklyMaintenanceWindow weekly_maintenance_window = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param array<\Google\Cloud\Memcache\V1\WeeklyMaintenanceWindow>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setWeeklyMaintenanceWindow($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Memcache\V1\WeeklyMaintenanceWindow::class);
+ $this->weekly_maintenance_window = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/MaintenanceSchedule.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/MaintenanceSchedule.php
new file mode 100644
index 000000000000..f141831d3947
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/MaintenanceSchedule.php
@@ -0,0 +1,169 @@
+google.cloud.memcache.v1.MaintenanceSchedule
+ */
+class MaintenanceSchedule extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The start time of any upcoming scheduled maintenance for this instance.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $start_time = null;
+ /**
+ * Output only. The end time of any upcoming scheduled maintenance for this instance.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. The deadline that the maintenance schedule start time can not go beyond,
+ * including reschedule.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp schedule_deadline_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $schedule_deadline_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $start_time
+ * Output only. The start time of any upcoming scheduled maintenance for this instance.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The end time of any upcoming scheduled maintenance for this instance.
+ * @type \Google\Protobuf\Timestamp $schedule_deadline_time
+ * Output only. The deadline that the maintenance schedule start time can not go beyond,
+ * including reschedule.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The start time of any upcoming scheduled maintenance for this instance.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getStartTime()
+ {
+ return $this->start_time;
+ }
+
+ public function hasStartTime()
+ {
+ return isset($this->start_time);
+ }
+
+ public function clearStartTime()
+ {
+ unset($this->start_time);
+ }
+
+ /**
+ * Output only. The start time of any upcoming scheduled maintenance for this instance.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The end time of any upcoming scheduled maintenance for this instance.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEndTime()
+ {
+ return $this->end_time;
+ }
+
+ public function hasEndTime()
+ {
+ return isset($this->end_time);
+ }
+
+ public function clearEndTime()
+ {
+ unset($this->end_time);
+ }
+
+ /**
+ * Output only. The end time of any upcoming scheduled maintenance for this instance.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The deadline that the maintenance schedule start time can not go beyond,
+ * including reschedule.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp schedule_deadline_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getScheduleDeadlineTime()
+ {
+ return $this->schedule_deadline_time;
+ }
+
+ public function hasScheduleDeadlineTime()
+ {
+ return isset($this->schedule_deadline_time);
+ }
+
+ public function clearScheduleDeadlineTime()
+ {
+ unset($this->schedule_deadline_time);
+ }
+
+ /**
+ * Output only. The deadline that the maintenance schedule start time can not go beyond,
+ * including reschedule.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp schedule_deadline_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setScheduleDeadlineTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->schedule_deadline_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/MemcacheParameters.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/MemcacheParameters.php
new file mode 100644
index 000000000000..8d5064794560
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/MemcacheParameters.php
@@ -0,0 +1,115 @@
+google.cloud.memcache.v1.MemcacheParameters
+ */
+class MemcacheParameters extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The unique ID associated with this set of parameters. Users
+ * can use this id to determine if the parameters associated with the instance
+ * differ from the parameters associated with the nodes. A discrepancy between
+ * parameter ids can inform users that they may need to take action to apply
+ * parameters on nodes.
+ *
+ * Generated from protobuf field string id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $id = '';
+ /**
+ * User defined set of parameters to use in the memcached process.
+ *
+ * Generated from protobuf field map params = 3;
+ */
+ private $params;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $id
+ * Output only. The unique ID associated with this set of parameters. Users
+ * can use this id to determine if the parameters associated with the instance
+ * differ from the parameters associated with the nodes. A discrepancy between
+ * parameter ids can inform users that they may need to take action to apply
+ * parameters on nodes.
+ * @type array|\Google\Protobuf\Internal\MapField $params
+ * User defined set of parameters to use in the memcached process.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The unique ID associated with this set of parameters. Users
+ * can use this id to determine if the parameters associated with the instance
+ * differ from the parameters associated with the nodes. A discrepancy between
+ * parameter ids can inform users that they may need to take action to apply
+ * parameters on nodes.
+ *
+ * Generated from protobuf field string id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * Output only. The unique ID associated with this set of parameters. Users
+ * can use this id to determine if the parameters associated with the instance
+ * differ from the parameters associated with the nodes. A discrepancy between
+ * parameter ids can inform users that they may need to take action to apply
+ * parameters on nodes.
+ *
+ * Generated from protobuf field string id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->id = $var;
+
+ return $this;
+ }
+
+ /**
+ * User defined set of parameters to use in the memcached process.
+ *
+ * Generated from protobuf field map params = 3;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getParams()
+ {
+ return $this->params;
+ }
+
+ /**
+ * User defined set of parameters to use in the memcached process.
+ *
+ * Generated from protobuf field map params = 3;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setParams($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->params = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/MemcacheVersion.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/MemcacheVersion.php
new file mode 100644
index 000000000000..99ddc115dd49
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/MemcacheVersion.php
@@ -0,0 +1,52 @@
+google.cloud.memcache.v1.MemcacheVersion
+ */
+class MemcacheVersion
+{
+ /**
+ * Generated from protobuf enum MEMCACHE_VERSION_UNSPECIFIED = 0;
+ */
+ const MEMCACHE_VERSION_UNSPECIFIED = 0;
+ /**
+ * Memcached 1.5 version.
+ *
+ * Generated from protobuf enum MEMCACHE_1_5 = 1;
+ */
+ const MEMCACHE_1_5 = 1;
+
+ private static $valueToName = [
+ self::MEMCACHE_VERSION_UNSPECIFIED => 'MEMCACHE_VERSION_UNSPECIFIED',
+ self::MEMCACHE_1_5 => 'MEMCACHE_1_5',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/OperationMetadata.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/OperationMetadata.php
new file mode 100644
index 000000000000..0dcd99c7e97a
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/OperationMetadata.php
@@ -0,0 +1,303 @@
+google.cloud.memcache.v1.OperationMetadata
+ */
+class OperationMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Time when the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Time when the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $target = '';
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $verb = '';
+ /**
+ * Output only. Human-readable status of the operation, if any.
+ *
+ * Generated from protobuf field string status_detail = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $status_detail = '';
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have successfully been cancelled
+ * have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
+ * corresponding to `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool cancel_requested = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $cancel_requested = false;
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $api_version = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Time when the operation was created.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. Time when the operation finished running.
+ * @type string $target
+ * Output only. Server-defined resource path for the target of the operation.
+ * @type string $verb
+ * Output only. Name of the verb executed by the operation.
+ * @type string $status_detail
+ * Output only. Human-readable status of the operation, if any.
+ * @type bool $cancel_requested
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have successfully been cancelled
+ * have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
+ * corresponding to `Code.CANCELLED`.
+ * @type string $api_version
+ * Output only. API version used to start the operation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Time when the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. Time when the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time when the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEndTime()
+ {
+ return $this->end_time;
+ }
+
+ public function hasEndTime()
+ {
+ return isset($this->end_time);
+ }
+
+ public function clearEndTime()
+ {
+ unset($this->end_time);
+ }
+
+ /**
+ * Output only. Time when the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getTarget()
+ {
+ return $this->target;
+ }
+
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setTarget($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getVerb()
+ {
+ return $this->verb;
+ }
+
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setVerb($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->verb = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Human-readable status of the operation, if any.
+ *
+ * Generated from protobuf field string status_detail = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStatusDetail()
+ {
+ return $this->status_detail;
+ }
+
+ /**
+ * Output only. Human-readable status of the operation, if any.
+ *
+ * Generated from protobuf field string status_detail = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStatusDetail($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->status_detail = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have successfully been cancelled
+ * have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
+ * corresponding to `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool cancel_requested = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getCancelRequested()
+ {
+ return $this->cancel_requested;
+ }
+
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have successfully been cancelled
+ * have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
+ * corresponding to `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool cancel_requested = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setCancelRequested($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->cancel_requested = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getApiVersion()
+ {
+ return $this->api_version;
+ }
+
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setApiVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->api_version = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/RescheduleMaintenanceRequest.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/RescheduleMaintenanceRequest.php
new file mode 100644
index 000000000000..f5848d53b348
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/RescheduleMaintenanceRequest.php
@@ -0,0 +1,184 @@
+google.cloud.memcache.v1.RescheduleMaintenanceRequest
+ */
+class RescheduleMaintenanceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Memcache instance resource name using the form:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * where `location_id` refers to a GCP region.
+ *
+ * Generated from protobuf field string instance = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $instance = '';
+ /**
+ * Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.RescheduleMaintenanceRequest.RescheduleType reschedule_type = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $reschedule_type = 0;
+ /**
+ * Timestamp when the maintenance shall be rescheduled to if
+ * reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for
+ * example `2012-11-15T16:19:00.094Z`.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp schedule_time = 3;
+ */
+ protected $schedule_time = null;
+
+ /**
+ * @param string $instance Required. Memcache instance resource name using the form:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * where `location_id` refers to a GCP region. Please see
+ * {@see CloudMemcacheClient::instanceName()} for help formatting this field.
+ * @param int $rescheduleType Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well.
+ * For allowed values, use constants defined on {@see \Google\Cloud\Memcache\V1\RescheduleMaintenanceRequest\RescheduleType}
+ * @param \Google\Protobuf\Timestamp $scheduleTime Timestamp when the maintenance shall be rescheduled to if
+ * reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for
+ * example `2012-11-15T16:19:00.094Z`.
+ *
+ * @return \Google\Cloud\Memcache\V1\RescheduleMaintenanceRequest
+ *
+ * @experimental
+ */
+ public static function build(string $instance, int $rescheduleType, \Google\Protobuf\Timestamp $scheduleTime): self
+ {
+ return (new self())
+ ->setInstance($instance)
+ ->setRescheduleType($rescheduleType)
+ ->setScheduleTime($scheduleTime);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $instance
+ * Required. Memcache instance resource name using the form:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * where `location_id` refers to a GCP region.
+ * @type int $reschedule_type
+ * Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well.
+ * @type \Google\Protobuf\Timestamp $schedule_time
+ * Timestamp when the maintenance shall be rescheduled to if
+ * reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for
+ * example `2012-11-15T16:19:00.094Z`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Memcache instance resource name using the form:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * where `location_id` refers to a GCP region.
+ *
+ * Generated from protobuf field string instance = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getInstance()
+ {
+ return $this->instance;
+ }
+
+ /**
+ * Required. Memcache instance resource name using the form:
+ * `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+ * where `location_id` refers to a GCP region.
+ *
+ * Generated from protobuf field string instance = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setInstance($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->instance = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.RescheduleMaintenanceRequest.RescheduleType reschedule_type = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getRescheduleType()
+ {
+ return $this->reschedule_type;
+ }
+
+ /**
+ * Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.RescheduleMaintenanceRequest.RescheduleType reschedule_type = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setRescheduleType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Memcache\V1\RescheduleMaintenanceRequest\RescheduleType::class);
+ $this->reschedule_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Timestamp when the maintenance shall be rescheduled to if
+ * reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for
+ * example `2012-11-15T16:19:00.094Z`.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp schedule_time = 3;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getScheduleTime()
+ {
+ return $this->schedule_time;
+ }
+
+ public function hasScheduleTime()
+ {
+ return isset($this->schedule_time);
+ }
+
+ public function clearScheduleTime()
+ {
+ unset($this->schedule_time);
+ }
+
+ /**
+ * Timestamp when the maintenance shall be rescheduled to if
+ * reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for
+ * example `2012-11-15T16:19:00.094Z`.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp schedule_time = 3;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setScheduleTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->schedule_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/RescheduleMaintenanceRequest/RescheduleType.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/RescheduleMaintenanceRequest/RescheduleType.php
new file mode 100644
index 000000000000..b015d580ce0d
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/RescheduleMaintenanceRequest/RescheduleType.php
@@ -0,0 +1,72 @@
+google.cloud.memcache.v1.RescheduleMaintenanceRequest.RescheduleType
+ */
+class RescheduleType
+{
+ /**
+ * Not set.
+ *
+ * Generated from protobuf enum RESCHEDULE_TYPE_UNSPECIFIED = 0;
+ */
+ const RESCHEDULE_TYPE_UNSPECIFIED = 0;
+ /**
+ * If the user wants to schedule the maintenance to happen now.
+ *
+ * Generated from protobuf enum IMMEDIATE = 1;
+ */
+ const IMMEDIATE = 1;
+ /**
+ * If the user wants to use the existing maintenance policy to find the
+ * next available window.
+ *
+ * Generated from protobuf enum NEXT_AVAILABLE_WINDOW = 2;
+ */
+ const NEXT_AVAILABLE_WINDOW = 2;
+ /**
+ * If the user wants to reschedule the maintenance to a specific time.
+ *
+ * Generated from protobuf enum SPECIFIC_TIME = 3;
+ */
+ const SPECIFIC_TIME = 3;
+
+ private static $valueToName = [
+ self::RESCHEDULE_TYPE_UNSPECIFIED => 'RESCHEDULE_TYPE_UNSPECIFIED',
+ self::IMMEDIATE => 'IMMEDIATE',
+ self::NEXT_AVAILABLE_WINDOW => 'NEXT_AVAILABLE_WINDOW',
+ self::SPECIFIC_TIME => 'SPECIFIC_TIME',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(RescheduleType::class, \Google\Cloud\Memcache\V1\RescheduleMaintenanceRequest_RescheduleType::class);
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/UpdateInstanceRequest.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/UpdateInstanceRequest.php
new file mode 100644
index 000000000000..2e74317853fd
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/UpdateInstanceRequest.php
@@ -0,0 +1,147 @@
+google.cloud.memcache.v1.UpdateInstanceRequest
+ */
+class UpdateInstanceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Mask of fields to update.
+ * * `displayName`
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. A Memcached Instance.
+ * Only fields specified in update_mask are updated.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance instance = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $instance = null;
+
+ /**
+ * @param \Google\Cloud\Memcache\V1\Instance $instance Required. A Memcached Instance.
+ * Only fields specified in update_mask are updated.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Mask of fields to update.
+ *
+ * * `displayName`
+ *
+ * @return \Google\Cloud\Memcache\V1\UpdateInstanceRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\Memcache\V1\Instance $instance, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setInstance($instance)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Mask of fields to update.
+ * * `displayName`
+ * @type \Google\Cloud\Memcache\V1\Instance $instance
+ * Required. A Memcached Instance.
+ * Only fields specified in update_mask are updated.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Mask of fields to update.
+ * * `displayName`
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Mask of fields to update.
+ * * `displayName`
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. A Memcached Instance.
+ * Only fields specified in update_mask are updated.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance instance = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Memcache\V1\Instance|null
+ */
+ public function getInstance()
+ {
+ return $this->instance;
+ }
+
+ public function hasInstance()
+ {
+ return isset($this->instance);
+ }
+
+ public function clearInstance()
+ {
+ unset($this->instance);
+ }
+
+ /**
+ * Required. A Memcached Instance.
+ * Only fields specified in update_mask are updated.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.Instance instance = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Memcache\V1\Instance $var
+ * @return $this
+ */
+ public function setInstance($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Memcache\V1\Instance::class);
+ $this->instance = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/UpdateParametersRequest.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/UpdateParametersRequest.php
new file mode 100644
index 000000000000..af9daca3148d
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/UpdateParametersRequest.php
@@ -0,0 +1,178 @@
+google.cloud.memcache.v1.UpdateParametersRequest
+ */
+class UpdateParametersRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name of the Memcached instance for which the parameters should be
+ * updated.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. Mask of fields to update.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * The parameters to apply to the instance.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MemcacheParameters parameters = 3;
+ */
+ protected $parameters = null;
+
+ /**
+ * @param string $name Required. Resource name of the Memcached instance for which the parameters should be
+ * updated. Please see
+ * {@see CloudMemcacheClient::instanceName()} for help formatting this field.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Mask of fields to update.
+ * @param \Google\Cloud\Memcache\V1\MemcacheParameters $parameters The parameters to apply to the instance.
+ *
+ * @return \Google\Cloud\Memcache\V1\UpdateParametersRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name, \Google\Protobuf\FieldMask $updateMask, \Google\Cloud\Memcache\V1\MemcacheParameters $parameters): self
+ {
+ return (new self())
+ ->setName($name)
+ ->setUpdateMask($updateMask)
+ ->setParameters($parameters);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Resource name of the Memcached instance for which the parameters should be
+ * updated.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Mask of fields to update.
+ * @type \Google\Cloud\Memcache\V1\MemcacheParameters $parameters
+ * The parameters to apply to the instance.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name of the Memcached instance for which the parameters should be
+ * updated.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Resource name of the Memcached instance for which the parameters should be
+ * updated.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Mask of fields to update.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Mask of fields to update.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * The parameters to apply to the instance.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MemcacheParameters parameters = 3;
+ * @return \Google\Cloud\Memcache\V1\MemcacheParameters|null
+ */
+ public function getParameters()
+ {
+ return $this->parameters;
+ }
+
+ public function hasParameters()
+ {
+ return isset($this->parameters);
+ }
+
+ public function clearParameters()
+ {
+ unset($this->parameters);
+ }
+
+ /**
+ * The parameters to apply to the instance.
+ *
+ * Generated from protobuf field .google.cloud.memcache.v1.MemcacheParameters parameters = 3;
+ * @param \Google\Cloud\Memcache\V1\MemcacheParameters $var
+ * @return $this
+ */
+ public function setParameters($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Memcache\V1\MemcacheParameters::class);
+ $this->parameters = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/WeeklyMaintenanceWindow.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/WeeklyMaintenanceWindow.php
new file mode 100644
index 000000000000..ec49a6a4aa09
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/WeeklyMaintenanceWindow.php
@@ -0,0 +1,155 @@
+google.cloud.memcache.v1.WeeklyMaintenanceWindow
+ */
+class WeeklyMaintenanceWindow extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Allows to define schedule that runs specified day of the week.
+ *
+ * Generated from protobuf field .google.type.DayOfWeek day = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $day = 0;
+ /**
+ * Required. Start time of the window in UTC.
+ *
+ * Generated from protobuf field .google.type.TimeOfDay start_time = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $start_time = null;
+ /**
+ * Required. Duration of the time window.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $duration = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $day
+ * Required. Allows to define schedule that runs specified day of the week.
+ * @type \Google\Type\TimeOfDay $start_time
+ * Required. Start time of the window in UTC.
+ * @type \Google\Protobuf\Duration $duration
+ * Required. Duration of the time window.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Allows to define schedule that runs specified day of the week.
+ *
+ * Generated from protobuf field .google.type.DayOfWeek day = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getDay()
+ {
+ return $this->day;
+ }
+
+ /**
+ * Required. Allows to define schedule that runs specified day of the week.
+ *
+ * Generated from protobuf field .google.type.DayOfWeek day = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setDay($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Type\DayOfWeek::class);
+ $this->day = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Start time of the window in UTC.
+ *
+ * Generated from protobuf field .google.type.TimeOfDay start_time = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Type\TimeOfDay|null
+ */
+ public function getStartTime()
+ {
+ return $this->start_time;
+ }
+
+ public function hasStartTime()
+ {
+ return isset($this->start_time);
+ }
+
+ public function clearStartTime()
+ {
+ unset($this->start_time);
+ }
+
+ /**
+ * Required. Start time of the window in UTC.
+ *
+ * Generated from protobuf field .google.type.TimeOfDay start_time = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Type\TimeOfDay $var
+ * @return $this
+ */
+ public function setStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\TimeOfDay::class);
+ $this->start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Duration of the time window.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getDuration()
+ {
+ return $this->duration;
+ }
+
+ public function hasDuration()
+ {
+ return isset($this->duration);
+ }
+
+ public function clearDuration()
+ {
+ unset($this->duration);
+ }
+
+ /**
+ * Required. Duration of the time window.
+ *
+ * Generated from protobuf field .google.protobuf.Duration duration = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->duration = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/ZoneMetadata.php b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/ZoneMetadata.php
new file mode 100644
index 000000000000..ef8a0e92f5d1
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/proto/src/Google/Cloud/Memcache/V1/ZoneMetadata.php
@@ -0,0 +1,31 @@
+google.cloud.memcache.v1.ZoneMetadata
+ */
+class ZoneMetadata extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Memcache\V1\CloudMemcache::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/apply_parameters.php b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/apply_parameters.php
new file mode 100644
index 000000000000..d7bcb6ff4768
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/apply_parameters.php
@@ -0,0 +1,85 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $cloudMemcacheClient->applyParameters($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Instance $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = CloudMemcacheClient::instanceName('[PROJECT]', '[LOCATION]', '[INSTANCE]');
+
+ apply_parameters_sample($formattedName);
+}
+// [END memcache_v1_generated_CloudMemcache_ApplyParameters_sync]
diff --git a/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/create_instance.php b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/create_instance.php
new file mode 100644
index 000000000000..6ce653b4a8c1
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/create_instance.php
@@ -0,0 +1,134 @@
+setCpuCount($instanceNodeConfigCpuCount)
+ ->setMemorySizeMb($instanceNodeConfigMemorySizeMb);
+ $instance = (new Instance())
+ ->setName($instanceName)
+ ->setNodeCount($instanceNodeCount)
+ ->setNodeConfig($instanceNodeConfig);
+ $request = (new CreateInstanceRequest())
+ ->setParent($formattedParent)
+ ->setInstanceId($instanceId)
+ ->setInstance($instance);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $cloudMemcacheClient->createInstance($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Instance $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = CloudMemcacheClient::locationName('[PROJECT]', '[LOCATION]');
+ $instanceId = '[INSTANCE_ID]';
+ $instanceName = '[NAME]';
+ $instanceNodeCount = 0;
+ $instanceNodeConfigCpuCount = 0;
+ $instanceNodeConfigMemorySizeMb = 0;
+
+ create_instance_sample(
+ $formattedParent,
+ $instanceId,
+ $instanceName,
+ $instanceNodeCount,
+ $instanceNodeConfigCpuCount,
+ $instanceNodeConfigMemorySizeMb
+ );
+}
+// [END memcache_v1_generated_CloudMemcache_CreateInstance_sync]
diff --git a/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/delete_instance.php b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/delete_instance.php
new file mode 100644
index 000000000000..9589955ab918
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/delete_instance.php
@@ -0,0 +1,82 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $cloudMemcacheClient->deleteInstance($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = CloudMemcacheClient::instanceName('[PROJECT]', '[LOCATION]', '[INSTANCE]');
+
+ delete_instance_sample($formattedName);
+}
+// [END memcache_v1_generated_CloudMemcache_DeleteInstance_sync]
diff --git a/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/get_instance.php b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/get_instance.php
new file mode 100644
index 000000000000..7055ea1a1d43
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/get_instance.php
@@ -0,0 +1,73 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Instance $response */
+ $response = $cloudMemcacheClient->getInstance($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = CloudMemcacheClient::instanceName('[PROJECT]', '[LOCATION]', '[INSTANCE]');
+
+ get_instance_sample($formattedName);
+}
+// [END memcache_v1_generated_CloudMemcache_GetInstance_sync]
diff --git a/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/get_location.php b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/get_location.php
new file mode 100644
index 000000000000..f0294f489913
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/get_location.php
@@ -0,0 +1,57 @@
+getLocation($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END memcache_v1_generated_CloudMemcache_GetLocation_sync]
diff --git a/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/list_instances.php b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/list_instances.php
new file mode 100644
index 000000000000..b8a288424f2a
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/list_instances.php
@@ -0,0 +1,78 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $cloudMemcacheClient->listInstances($request);
+
+ /** @var Instance $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = CloudMemcacheClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_instances_sample($formattedParent);
+}
+// [END memcache_v1_generated_CloudMemcache_ListInstances_sync]
diff --git a/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/list_locations.php b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/list_locations.php
new file mode 100644
index 000000000000..02151c67ba4a
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/list_locations.php
@@ -0,0 +1,62 @@
+listLocations($request);
+
+ /** @var Location $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END memcache_v1_generated_CloudMemcache_ListLocations_sync]
diff --git a/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/reschedule_maintenance.php b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/reschedule_maintenance.php
new file mode 100644
index 000000000000..e618a1ca565b
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/reschedule_maintenance.php
@@ -0,0 +1,89 @@
+setInstance($formattedInstance)
+ ->setRescheduleType($rescheduleType);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $cloudMemcacheClient->rescheduleMaintenance($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Instance $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedInstance = CloudMemcacheClient::instanceName('[PROJECT]', '[LOCATION]', '[INSTANCE]');
+ $rescheduleType = RescheduleType::RESCHEDULE_TYPE_UNSPECIFIED;
+
+ reschedule_maintenance_sample($formattedInstance, $rescheduleType);
+}
+// [END memcache_v1_generated_CloudMemcache_RescheduleMaintenance_sync]
diff --git a/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/update_instance.php b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/update_instance.php
new file mode 100644
index 000000000000..5b1d84bd0234
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/update_instance.php
@@ -0,0 +1,115 @@
+setCpuCount($instanceNodeConfigCpuCount)
+ ->setMemorySizeMb($instanceNodeConfigMemorySizeMb);
+ $instance = (new Instance())
+ ->setName($instanceName)
+ ->setNodeCount($instanceNodeCount)
+ ->setNodeConfig($instanceNodeConfig);
+ $request = (new UpdateInstanceRequest())
+ ->setUpdateMask($updateMask)
+ ->setInstance($instance);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $cloudMemcacheClient->updateInstance($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Instance $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $instanceName = '[NAME]';
+ $instanceNodeCount = 0;
+ $instanceNodeConfigCpuCount = 0;
+ $instanceNodeConfigMemorySizeMb = 0;
+
+ update_instance_sample(
+ $instanceName,
+ $instanceNodeCount,
+ $instanceNodeConfigCpuCount,
+ $instanceNodeConfigMemorySizeMb
+ );
+}
+// [END memcache_v1_generated_CloudMemcache_UpdateInstance_sync]
diff --git a/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/update_parameters.php b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/update_parameters.php
new file mode 100644
index 000000000000..91c0c48ef163
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/samples/V1/CloudMemcacheClient/update_parameters.php
@@ -0,0 +1,90 @@
+setName($formattedName)
+ ->setUpdateMask($updateMask);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $cloudMemcacheClient->updateParameters($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Instance $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = CloudMemcacheClient::instanceName('[PROJECT]', '[LOCATION]', '[INSTANCE]');
+
+ update_parameters_sample($formattedName);
+}
+// [END memcache_v1_generated_CloudMemcache_UpdateParameters_sync]
diff --git a/owl-bot-staging/Memcache/v1/src/V1/Client/CloudMemcacheClient.php b/owl-bot-staging/Memcache/v1/src/V1/Client/CloudMemcacheClient.php
new file mode 100644
index 000000000000..451786626307
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/src/V1/Client/CloudMemcacheClient.php
@@ -0,0 +1,587 @@
+ applyParametersAsync(ApplyParametersRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createInstanceAsync(CreateInstanceRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteInstanceAsync(DeleteInstanceRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getInstanceAsync(GetInstanceRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listInstancesAsync(ListInstancesRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface rescheduleMaintenanceAsync(RescheduleMaintenanceRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateInstanceAsync(UpdateInstanceRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateParametersAsync(UpdateParametersRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = [])
+ */
+final class CloudMemcacheClient
+{
+ use GapicClientTrait;
+ use ResourceHelperTrait;
+
+ /** The name of the service. */
+ private const SERVICE_NAME = 'google.cloud.memcache.v1.CloudMemcache';
+
+ /**
+ * The default address of the service.
+ *
+ * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead.
+ */
+ private const SERVICE_ADDRESS = 'memcache.googleapis.com';
+
+ /** The address template of the service. */
+ private const SERVICE_ADDRESS_TEMPLATE = 'memcache.UNIVERSE_DOMAIN';
+
+ /** The default port of the service. */
+ private const DEFAULT_SERVICE_PORT = 443;
+
+ /** The name of the code generator, to be included in the agent header. */
+ private const CODEGEN_NAME = 'gapic';
+
+ /** The default scopes required by the service. */
+ public static $serviceScopes = [
+ 'https://www.googleapis.com/auth/cloud-platform',
+ ];
+
+ private $operationsClient;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/cloud_memcache_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/cloud_memcache_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/cloud_memcache_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/cloud_memcache_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Return an OperationsClient object with the same endpoint as $this.
+ *
+ * @return OperationsClient
+ */
+ public function getOperationsClient()
+ {
+ return $this->operationsClient;
+ }
+
+ /**
+ * Resume an existing long running operation that was previously started by a long
+ * running API method. If $methodName is not provided, or does not match a long
+ * running API method, then the operation can still be resumed, but the
+ * OperationResponse object will not deserialize the final response.
+ *
+ * @param string $operationName The name of the long running operation
+ * @param string $methodName The name of the method used to start the operation
+ *
+ * @return OperationResponse
+ */
+ public function resumeOperation($operationName, $methodName = null)
+ {
+ $options = isset($this->descriptors[$methodName]['longRunning']) ? $this->descriptors[$methodName]['longRunning'] : [];
+ $operation = new OperationResponse($operationName, $this->getOperationsClient(), $options);
+ $operation->reload();
+ return $operation;
+ }
+
+ /**
+ * Create the default operation client for the service.
+ *
+ * @param array $options ClientOptions for the client.
+ *
+ * @return OperationsClient
+ */
+ private function createOperationsClient(array $options)
+ {
+ // Unset client-specific configuration options
+ unset($options['serviceName'], $options['clientConfig'], $options['descriptorsConfigPath']);
+
+ if (isset($options['operationsClient'])) {
+ return $options['operationsClient'];
+ }
+
+ return new OperationsClient($options);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a instance
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $instance
+ *
+ * @return string The formatted instance resource.
+ */
+ public static function instanceName(string $project, string $location, string $instance): string
+ {
+ return self::getPathTemplate('instance')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'instance' => $instance,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a location
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ *
+ * @return string The formatted location resource.
+ */
+ public static function locationName(string $project, string $location): string
+ {
+ return self::getPathTemplate('location')->render([
+ 'project' => $project,
+ 'location' => $location,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - instance: projects/{project}/locations/{location}/instances/{instance}
+ * - location: projects/{project}/locations/{location}
+ *
+ * The optional $template argument can be supplied to specify a particular pattern,
+ * and must match one of the templates listed above. If no $template argument is
+ * provided, or if the $template argument does not match one of the templates
+ * listed, then parseName will check each of the supported templates, and return
+ * the first match.
+ *
+ * @param string $formattedName The formatted name string
+ * @param ?string $template Optional name of template to match
+ *
+ * @return array An associative array from name component IDs to component values.
+ *
+ * @throws ValidationException If $formattedName could not be matched.
+ */
+ public static function parseName(string $formattedName, ?string $template = null): array
+ {
+ return self::parseFormattedName($formattedName, $template);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $options {
+ * Optional. Options for configuring the service API wrapper.
+ *
+ * @type string $apiEndpoint
+ * The address of the API remote host. May optionally include the port, formatted
+ * as ":". Default 'memcache.googleapis.com:443'.
+ * @type string|array|FetchAuthTokenInterface|CredentialsWrapper $credentials
+ * The credentials to be used by the client to authorize API calls. This option
+ * accepts either a path to a credentials file, or a decoded credentials file as a
+ * PHP array.
+ * *Advanced usage*: In addition, this option can also accept a pre-constructed
+ * {@see \Google\Auth\FetchAuthTokenInterface} object or
+ * {@see \Google\ApiCore\CredentialsWrapper} object. Note that when one of these
+ * objects are provided, any settings in $credentialsConfig will be ignored.
+ * @type array $credentialsConfig
+ * Options used to configure credentials, including auth token caching, for the
+ * client. For a full list of supporting configuration options, see
+ * {@see \Google\ApiCore\CredentialsWrapper::build()} .
+ * @type bool $disableRetries
+ * Determines whether or not retries defined by the client configuration should be
+ * disabled. Defaults to `false`.
+ * @type string|array $clientConfig
+ * Client method configuration, including retry settings. This option can be either
+ * a path to a JSON file, or a PHP array containing the decoded JSON data. By
+ * default this settings points to the default client config file, which is
+ * provided in the resources folder.
+ * @type string|TransportInterface $transport
+ * The transport used for executing network requests. May be either the string
+ * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system.
+ * *Advanced usage*: Additionally, it is possible to pass in an already
+ * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note
+ * that when this object is provided, any settings in $transportConfig, and any
+ * $apiEndpoint setting, will be ignored.
+ * @type array $transportConfig
+ * Configuration options that will be used to construct the transport. Options for
+ * each supported transport type should be passed in a key for that transport. For
+ * example:
+ * $transportConfig = [
+ * 'grpc' => [...],
+ * 'rest' => [...],
+ * ];
+ * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and
+ * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the
+ * supported options.
+ * @type callable $clientCertSource
+ * A callable which returns the client cert as a string. This can be used to
+ * provide a certificate and private key to the transport layer for mTLS.
+ * @type false|LoggerInterface $logger
+ * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the
+ * 'GOOGLE_SDK_PHP_LOGGING' environment flag
+ * }
+ *
+ * @throws ValidationException
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ $this->operationsClient = $this->createOperationsClient($clientOptions);
+ }
+
+ /** Handles execution of the async variants for each documented method. */
+ public function __call($method, $args)
+ {
+ if (substr($method, -5) !== 'Async') {
+ trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR);
+ }
+
+ array_unshift($args, substr($method, 0, -5));
+ return call_user_func_array([$this, 'startAsyncCall'], $args);
+ }
+
+ /**
+ * `ApplyParameters` restarts the set of specified nodes in order to update
+ * them to the current set of parameters for the Memcached Instance.
+ *
+ * The async variant is {@see CloudMemcacheClient::applyParametersAsync()} .
+ *
+ * @example samples/V1/CloudMemcacheClient/apply_parameters.php
+ *
+ * @param ApplyParametersRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function applyParameters(ApplyParametersRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('ApplyParameters', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a new Instance in a given location.
+ *
+ * The async variant is {@see CloudMemcacheClient::createInstanceAsync()} .
+ *
+ * @example samples/V1/CloudMemcacheClient/create_instance.php
+ *
+ * @param CreateInstanceRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createInstance(CreateInstanceRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateInstance', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a single Instance.
+ *
+ * The async variant is {@see CloudMemcacheClient::deleteInstanceAsync()} .
+ *
+ * @example samples/V1/CloudMemcacheClient/delete_instance.php
+ *
+ * @param DeleteInstanceRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteInstance(DeleteInstanceRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteInstance', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets details of a single Instance.
+ *
+ * The async variant is {@see CloudMemcacheClient::getInstanceAsync()} .
+ *
+ * @example samples/V1/CloudMemcacheClient/get_instance.php
+ *
+ * @param GetInstanceRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Instance
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getInstance(GetInstanceRequest $request, array $callOptions = []): Instance
+ {
+ return $this->startApiCall('GetInstance', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists Instances in a given location.
+ *
+ * The async variant is {@see CloudMemcacheClient::listInstancesAsync()} .
+ *
+ * @example samples/V1/CloudMemcacheClient/list_instances.php
+ *
+ * @param ListInstancesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listInstances(ListInstancesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListInstances', $request, $callOptions);
+ }
+
+ /**
+ * Reschedules upcoming maintenance event.
+ *
+ * The async variant is {@see CloudMemcacheClient::rescheduleMaintenanceAsync()} .
+ *
+ * @example samples/V1/CloudMemcacheClient/reschedule_maintenance.php
+ *
+ * @param RescheduleMaintenanceRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function rescheduleMaintenance(RescheduleMaintenanceRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('RescheduleMaintenance', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates an existing Instance in a given project and location.
+ *
+ * The async variant is {@see CloudMemcacheClient::updateInstanceAsync()} .
+ *
+ * @example samples/V1/CloudMemcacheClient/update_instance.php
+ *
+ * @param UpdateInstanceRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateInstance(UpdateInstanceRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('UpdateInstance', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates the defined Memcached parameters for an existing instance.
+ * This method only stages the parameters, it must be followed by
+ * `ApplyParameters` to apply the parameters to nodes of the Memcached
+ * instance.
+ *
+ * The async variant is {@see CloudMemcacheClient::updateParametersAsync()} .
+ *
+ * @example samples/V1/CloudMemcacheClient/update_parameters.php
+ *
+ * @param UpdateParametersRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateParameters(UpdateParametersRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('UpdateParameters', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * The async variant is {@see CloudMemcacheClient::getLocationAsync()} .
+ *
+ * @example samples/V1/CloudMemcacheClient/get_location.php
+ *
+ * @param GetLocationRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Location
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getLocation(GetLocationRequest $request, array $callOptions = []): Location
+ {
+ return $this->startApiCall('GetLocation', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists information about the supported locations for this service.
+ *
+ * The async variant is {@see CloudMemcacheClient::listLocationsAsync()} .
+ *
+ * @example samples/V1/CloudMemcacheClient/list_locations.php
+ *
+ * @param ListLocationsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListLocations', $request, $callOptions);
+ }
+}
diff --git a/owl-bot-staging/Memcache/v1/src/V1/gapic_metadata.json b/owl-bot-staging/Memcache/v1/src/V1/gapic_metadata.json
new file mode 100644
index 000000000000..e993652f358b
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/src/V1/gapic_metadata.json
@@ -0,0 +1,68 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.cloud.memcache.v1",
+ "libraryPackage": "Google\\Cloud\\Memcache\\V1",
+ "services": {
+ "CloudMemcache": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "CloudMemcacheGapicClient",
+ "rpcs": {
+ "ApplyParameters": {
+ "methods": [
+ "applyParameters"
+ ]
+ },
+ "CreateInstance": {
+ "methods": [
+ "createInstance"
+ ]
+ },
+ "DeleteInstance": {
+ "methods": [
+ "deleteInstance"
+ ]
+ },
+ "GetInstance": {
+ "methods": [
+ "getInstance"
+ ]
+ },
+ "ListInstances": {
+ "methods": [
+ "listInstances"
+ ]
+ },
+ "RescheduleMaintenance": {
+ "methods": [
+ "rescheduleMaintenance"
+ ]
+ },
+ "UpdateInstance": {
+ "methods": [
+ "updateInstance"
+ ]
+ },
+ "UpdateParameters": {
+ "methods": [
+ "updateParameters"
+ ]
+ },
+ "GetLocation": {
+ "methods": [
+ "getLocation"
+ ]
+ },
+ "ListLocations": {
+ "methods": [
+ "listLocations"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/owl-bot-staging/Memcache/v1/src/V1/resources/cloud_memcache_client_config.json b/owl-bot-staging/Memcache/v1/src/V1/resources/cloud_memcache_client_config.json
new file mode 100644
index 000000000000..d52aad915ae6
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/src/V1/resources/cloud_memcache_client_config.json
@@ -0,0 +1,82 @@
+{
+ "interfaces": {
+ "google.cloud.memcache.v1.CloudMemcache": {
+ "retry_codes": {
+ "no_retry_codes": [],
+ "no_retry_1_codes": []
+ },
+ "retry_params": {
+ "no_retry_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 0,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 0,
+ "total_timeout_millis": 0
+ },
+ "no_retry_1_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 1200000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 1200000,
+ "total_timeout_millis": 1200000
+ }
+ },
+ "methods": {
+ "ApplyParameters": {
+ "timeout_millis": 1200000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateInstance": {
+ "timeout_millis": 1200000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteInstance": {
+ "timeout_millis": 1200000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetInstance": {
+ "timeout_millis": 1200000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListInstances": {
+ "timeout_millis": 1200000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "RescheduleMaintenance": {
+ "timeout_millis": 1200000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateInstance": {
+ "timeout_millis": 1200000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateParameters": {
+ "timeout_millis": 1200000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetLocation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "ListLocations": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/Memcache/v1/src/V1/resources/cloud_memcache_descriptor_config.php b/owl-bot-staging/Memcache/v1/src/V1/resources/cloud_memcache_descriptor_config.php
new file mode 100644
index 000000000000..97d3dc1ba57d
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/src/V1/resources/cloud_memcache_descriptor_config.php
@@ -0,0 +1,213 @@
+ [
+ 'google.cloud.memcache.v1.CloudMemcache' => [
+ 'ApplyParameters' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Memcache\V1\Instance',
+ 'metadataReturnType' => '\Google\Cloud\Memcache\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'CreateInstance' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Memcache\V1\Instance',
+ 'metadataReturnType' => '\Google\Cloud\Memcache\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteInstance' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\Memcache\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'RescheduleMaintenance' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Memcache\V1\Instance',
+ 'metadataReturnType' => '\Google\Cloud\Memcache\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'instance',
+ 'fieldAccessors' => [
+ 'getInstance',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateInstance' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Memcache\V1\Instance',
+ 'metadataReturnType' => '\Google\Cloud\Memcache\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'instance.name',
+ 'fieldAccessors' => [
+ 'getInstance',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateParameters' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Memcache\V1\Instance',
+ 'metadataReturnType' => '\Google\Cloud\Memcache\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetInstance' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Memcache\V1\Instance',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListInstances' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getInstances',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Memcache\V1\ListInstancesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'GetLocation' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Location\Location',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'ListLocations' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getLocations',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Location\ListLocationsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'templateMap' => [
+ 'instance' => 'projects/{project}/locations/{location}/instances/{instance}',
+ 'location' => 'projects/{project}/locations/{location}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/Memcache/v1/src/V1/resources/cloud_memcache_rest_client_config.php b/owl-bot-staging/Memcache/v1/src/V1/resources/cloud_memcache_rest_client_config.php
new file mode 100644
index 000000000000..281466044120
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/src/V1/resources/cloud_memcache_rest_client_config.php
@@ -0,0 +1,200 @@
+ [
+ 'google.cloud.location.Locations' => [
+ 'GetLocation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListLocations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*}/locations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.cloud.memcache.v1.CloudMemcache' => [
+ 'ApplyParameters' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/instances/*}:applyParameters',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'CreateInstance' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/instances',
+ 'body' => 'instance',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'instance_id',
+ ],
+ ],
+ 'DeleteInstance' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/instances/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetInstance' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/instances/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListInstances' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/instances',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'RescheduleMaintenance' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{instance=projects/*/locations/*/instances/*}:rescheduleMaintenance',
+ 'body' => '*',
+ 'placeholders' => [
+ 'instance' => [
+ 'getters' => [
+ 'getInstance',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateInstance' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{instance.name=projects/*/locations/*/instances/*}',
+ 'body' => 'instance',
+ 'placeholders' => [
+ 'instance.name' => [
+ 'getters' => [
+ 'getInstance',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateParameters' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/instances/*}:updateParameters',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.longrunning.Operations' => [
+ 'CancelOperation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/operations/*}:cancel',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteOperation' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetOperation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListOperations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*}/operations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/Memcache/v1/tests/Unit/V1/Client/CloudMemcacheClientTest.php b/owl-bot-staging/Memcache/v1/tests/Unit/V1/Client/CloudMemcacheClientTest.php
new file mode 100644
index 000000000000..b4bcd6a189cb
--- /dev/null
+++ b/owl-bot-staging/Memcache/v1/tests/Unit/V1/Client/CloudMemcacheClientTest.php
@@ -0,0 +1,1284 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return CloudMemcacheClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new CloudMemcacheClient($options);
+ }
+
+ /** @test */
+ public function applyParametersTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/applyParametersTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $authorizedNetwork = 'authorizedNetwork-1733809270';
+ $nodeCount = 1539922066;
+ $memcacheFullVersion = 'memcacheFullVersion-1666834598';
+ $discoveryEndpoint = 'discoveryEndpoint224997188';
+ $expectedResponse = new Instance();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setAuthorizedNetwork($authorizedNetwork);
+ $expectedResponse->setNodeCount($nodeCount);
+ $expectedResponse->setMemcacheFullVersion($memcacheFullVersion);
+ $expectedResponse->setDiscoveryEndpoint($discoveryEndpoint);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/applyParametersTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->instanceName('[PROJECT]', '[LOCATION]', '[INSTANCE]');
+ $request = (new ApplyParametersRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->applyParameters($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.memcache.v1.CloudMemcache/ApplyParameters', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/applyParametersTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function applyParametersExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/applyParametersTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->instanceName('[PROJECT]', '[LOCATION]', '[INSTANCE]');
+ $request = (new ApplyParametersRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->applyParameters($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/applyParametersTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createInstanceTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createInstanceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $authorizedNetwork = 'authorizedNetwork-1733809270';
+ $nodeCount = 1539922066;
+ $memcacheFullVersion = 'memcacheFullVersion-1666834598';
+ $discoveryEndpoint = 'discoveryEndpoint224997188';
+ $expectedResponse = new Instance();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setAuthorizedNetwork($authorizedNetwork);
+ $expectedResponse->setNodeCount($nodeCount);
+ $expectedResponse->setMemcacheFullVersion($memcacheFullVersion);
+ $expectedResponse->setDiscoveryEndpoint($discoveryEndpoint);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createInstanceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $instanceId = 'instanceId-2101995259';
+ $instance = new Instance();
+ $instanceName = 'instanceName-737857344';
+ $instance->setName($instanceName);
+ $instanceNodeCount = 310900968;
+ $instance->setNodeCount($instanceNodeCount);
+ $instanceNodeConfig = new NodeConfig();
+ $nodeConfigCpuCount = 604896331;
+ $instanceNodeConfig->setCpuCount($nodeConfigCpuCount);
+ $nodeConfigMemorySizeMb = 701709349;
+ $instanceNodeConfig->setMemorySizeMb($nodeConfigMemorySizeMb);
+ $instance->setNodeConfig($instanceNodeConfig);
+ $request = (new CreateInstanceRequest())
+ ->setParent($formattedParent)
+ ->setInstanceId($instanceId)
+ ->setInstance($instance);
+ $response = $gapicClient->createInstance($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.memcache.v1.CloudMemcache/CreateInstance', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getInstanceId();
+ $this->assertProtobufEquals($instanceId, $actualValue);
+ $actualValue = $actualApiRequestObject->getInstance();
+ $this->assertProtobufEquals($instance, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createInstanceTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createInstanceExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createInstanceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $instanceId = 'instanceId-2101995259';
+ $instance = new Instance();
+ $instanceName = 'instanceName-737857344';
+ $instance->setName($instanceName);
+ $instanceNodeCount = 310900968;
+ $instance->setNodeCount($instanceNodeCount);
+ $instanceNodeConfig = new NodeConfig();
+ $nodeConfigCpuCount = 604896331;
+ $instanceNodeConfig->setCpuCount($nodeConfigCpuCount);
+ $nodeConfigMemorySizeMb = 701709349;
+ $instanceNodeConfig->setMemorySizeMb($nodeConfigMemorySizeMb);
+ $instance->setNodeConfig($instanceNodeConfig);
+ $request = (new CreateInstanceRequest())
+ ->setParent($formattedParent)
+ ->setInstanceId($instanceId)
+ ->setInstance($instance);
+ $response = $gapicClient->createInstance($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createInstanceTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteInstanceTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteInstanceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteInstanceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->instanceName('[PROJECT]', '[LOCATION]', '[INSTANCE]');
+ $request = (new DeleteInstanceRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteInstance($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.memcache.v1.CloudMemcache/DeleteInstance', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteInstanceTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteInstanceExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteInstanceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->instanceName('[PROJECT]', '[LOCATION]', '[INSTANCE]');
+ $request = (new DeleteInstanceRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteInstance($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteInstanceTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function getInstanceTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $authorizedNetwork = 'authorizedNetwork-1733809270';
+ $nodeCount = 1539922066;
+ $memcacheFullVersion = 'memcacheFullVersion-1666834598';
+ $discoveryEndpoint = 'discoveryEndpoint224997188';
+ $expectedResponse = new Instance();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setAuthorizedNetwork($authorizedNetwork);
+ $expectedResponse->setNodeCount($nodeCount);
+ $expectedResponse->setMemcacheFullVersion($memcacheFullVersion);
+ $expectedResponse->setDiscoveryEndpoint($discoveryEndpoint);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->instanceName('[PROJECT]', '[LOCATION]', '[INSTANCE]');
+ $request = (new GetInstanceRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getInstance($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.memcache.v1.CloudMemcache/GetInstance', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getInstanceExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->instanceName('[PROJECT]', '[LOCATION]', '[INSTANCE]');
+ $request = (new GetInstanceRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getInstance($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listInstancesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $instancesElement = new Instance();
+ $instances = [
+ $instancesElement,
+ ];
+ $expectedResponse = new ListInstancesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setInstances($instances);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListInstancesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listInstances($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getInstances()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.memcache.v1.CloudMemcache/ListInstances', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listInstancesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListInstancesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listInstances($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function rescheduleMaintenanceTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/rescheduleMaintenanceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $authorizedNetwork = 'authorizedNetwork-1733809270';
+ $nodeCount = 1539922066;
+ $memcacheFullVersion = 'memcacheFullVersion-1666834598';
+ $discoveryEndpoint = 'discoveryEndpoint224997188';
+ $expectedResponse = new Instance();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setAuthorizedNetwork($authorizedNetwork);
+ $expectedResponse->setNodeCount($nodeCount);
+ $expectedResponse->setMemcacheFullVersion($memcacheFullVersion);
+ $expectedResponse->setDiscoveryEndpoint($discoveryEndpoint);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/rescheduleMaintenanceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedInstance = $gapicClient->instanceName('[PROJECT]', '[LOCATION]', '[INSTANCE]');
+ $rescheduleType = RescheduleType::RESCHEDULE_TYPE_UNSPECIFIED;
+ $request = (new RescheduleMaintenanceRequest())
+ ->setInstance($formattedInstance)
+ ->setRescheduleType($rescheduleType);
+ $response = $gapicClient->rescheduleMaintenance($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.memcache.v1.CloudMemcache/RescheduleMaintenance', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getInstance();
+ $this->assertProtobufEquals($formattedInstance, $actualValue);
+ $actualValue = $actualApiRequestObject->getRescheduleType();
+ $this->assertProtobufEquals($rescheduleType, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/rescheduleMaintenanceTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function rescheduleMaintenanceExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/rescheduleMaintenanceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedInstance = $gapicClient->instanceName('[PROJECT]', '[LOCATION]', '[INSTANCE]');
+ $rescheduleType = RescheduleType::RESCHEDULE_TYPE_UNSPECIFIED;
+ $request = (new RescheduleMaintenanceRequest())
+ ->setInstance($formattedInstance)
+ ->setRescheduleType($rescheduleType);
+ $response = $gapicClient->rescheduleMaintenance($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/rescheduleMaintenanceTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateInstanceTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateInstanceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $authorizedNetwork = 'authorizedNetwork-1733809270';
+ $nodeCount = 1539922066;
+ $memcacheFullVersion = 'memcacheFullVersion-1666834598';
+ $discoveryEndpoint = 'discoveryEndpoint224997188';
+ $expectedResponse = new Instance();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setAuthorizedNetwork($authorizedNetwork);
+ $expectedResponse->setNodeCount($nodeCount);
+ $expectedResponse->setMemcacheFullVersion($memcacheFullVersion);
+ $expectedResponse->setDiscoveryEndpoint($discoveryEndpoint);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateInstanceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $instance = new Instance();
+ $instanceName = 'instanceName-737857344';
+ $instance->setName($instanceName);
+ $instanceNodeCount = 310900968;
+ $instance->setNodeCount($instanceNodeCount);
+ $instanceNodeConfig = new NodeConfig();
+ $nodeConfigCpuCount = 604896331;
+ $instanceNodeConfig->setCpuCount($nodeConfigCpuCount);
+ $nodeConfigMemorySizeMb = 701709349;
+ $instanceNodeConfig->setMemorySizeMb($nodeConfigMemorySizeMb);
+ $instance->setNodeConfig($instanceNodeConfig);
+ $request = (new UpdateInstanceRequest())
+ ->setUpdateMask($updateMask)
+ ->setInstance($instance);
+ $response = $gapicClient->updateInstance($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.memcache.v1.CloudMemcache/UpdateInstance', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getInstance();
+ $this->assertProtobufEquals($instance, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateInstanceTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateInstanceExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateInstanceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $updateMask = new FieldMask();
+ $instance = new Instance();
+ $instanceName = 'instanceName-737857344';
+ $instance->setName($instanceName);
+ $instanceNodeCount = 310900968;
+ $instance->setNodeCount($instanceNodeCount);
+ $instanceNodeConfig = new NodeConfig();
+ $nodeConfigCpuCount = 604896331;
+ $instanceNodeConfig->setCpuCount($nodeConfigCpuCount);
+ $nodeConfigMemorySizeMb = 701709349;
+ $instanceNodeConfig->setMemorySizeMb($nodeConfigMemorySizeMb);
+ $instance->setNodeConfig($instanceNodeConfig);
+ $request = (new UpdateInstanceRequest())
+ ->setUpdateMask($updateMask)
+ ->setInstance($instance);
+ $response = $gapicClient->updateInstance($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateInstanceTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateParametersTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateParametersTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $authorizedNetwork = 'authorizedNetwork-1733809270';
+ $nodeCount = 1539922066;
+ $memcacheFullVersion = 'memcacheFullVersion-1666834598';
+ $discoveryEndpoint = 'discoveryEndpoint224997188';
+ $expectedResponse = new Instance();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setAuthorizedNetwork($authorizedNetwork);
+ $expectedResponse->setNodeCount($nodeCount);
+ $expectedResponse->setMemcacheFullVersion($memcacheFullVersion);
+ $expectedResponse->setDiscoveryEndpoint($discoveryEndpoint);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateParametersTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->instanceName('[PROJECT]', '[LOCATION]', '[INSTANCE]');
+ $updateMask = new FieldMask();
+ $request = (new UpdateParametersRequest())
+ ->setName($formattedName)
+ ->setUpdateMask($updateMask);
+ $response = $gapicClient->updateParameters($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.memcache.v1.CloudMemcache/UpdateParameters', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateParametersTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateParametersExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateParametersTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->instanceName('[PROJECT]', '[LOCATION]', '[INSTANCE]');
+ $updateMask = new FieldMask();
+ $request = (new UpdateParametersRequest())
+ ->setName($formattedName)
+ ->setUpdateMask($updateMask);
+ $response = $gapicClient->updateParameters($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateParametersTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function getLocationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $locationId = 'locationId552319461';
+ $displayName = 'displayName1615086568';
+ $expectedResponse = new Location();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setLocationId($locationId);
+ $expectedResponse->setDisplayName($displayName);
+ $transport->addResponse($expectedResponse);
+ $request = new GetLocationRequest();
+ $response = $gapicClient->getLocation($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.location.Locations/GetLocation', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getLocationExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new GetLocationRequest();
+ try {
+ $gapicClient->getLocation($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listLocationsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $locationsElement = new Location();
+ $locations = [
+ $locationsElement,
+ ];
+ $expectedResponse = new ListLocationsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setLocations($locations);
+ $transport->addResponse($expectedResponse);
+ $request = new ListLocationsRequest();
+ $response = $gapicClient->listLocations($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getLocations()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.location.Locations/ListLocations', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listLocationsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new ListLocationsRequest();
+ try {
+ $gapicClient->listLocations($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function applyParametersAsyncTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/applyParametersTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $authorizedNetwork = 'authorizedNetwork-1733809270';
+ $nodeCount = 1539922066;
+ $memcacheFullVersion = 'memcacheFullVersion-1666834598';
+ $discoveryEndpoint = 'discoveryEndpoint224997188';
+ $expectedResponse = new Instance();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setAuthorizedNetwork($authorizedNetwork);
+ $expectedResponse->setNodeCount($nodeCount);
+ $expectedResponse->setMemcacheFullVersion($memcacheFullVersion);
+ $expectedResponse->setDiscoveryEndpoint($discoveryEndpoint);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/applyParametersTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->instanceName('[PROJECT]', '[LOCATION]', '[INSTANCE]');
+ $request = (new ApplyParametersRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->applyParametersAsync($request)->wait();
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.memcache.v1.CloudMemcache/ApplyParameters', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/applyParametersTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/GPBMetadata/Google/Cloud/Migrationcenter/V1/Migrationcenter.php b/owl-bot-staging/MigrationCenter/v1/proto/src/GPBMetadata/Google/Cloud/Migrationcenter/V1/Migrationcenter.php
new file mode 100644
index 000000000000..9d3e41b60ded
Binary files /dev/null and b/owl-bot-staging/MigrationCenter/v1/proto/src/GPBMetadata/Google/Cloud/Migrationcenter/V1/Migrationcenter.php differ
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AddAssetsToGroupRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AddAssetsToGroupRequest.php
new file mode 100644
index 000000000000..c55045d848d3
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AddAssetsToGroupRequest.php
@@ -0,0 +1,257 @@
+google.cloud.migrationcenter.v1.AddAssetsToGroupRequest
+ */
+class AddAssetsToGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Group reference.
+ *
+ * Generated from protobuf field string group = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $group = '';
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+ /**
+ * Required. List of assets to be added.
+ * The maximum number of assets that can be added in a single request is
+ * 1000.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetList assets = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $assets = null;
+ /**
+ * Optional. When this value is set to `false` and one of the given assets is
+ * already an existing member of the group, the operation fails with an
+ * `Already Exists` error. When set to `true` this situation is silently
+ * ignored by the server.
+ * Default value is `false`.
+ *
+ * Generated from protobuf field bool allow_existing = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $allow_existing = false;
+
+ /**
+ * @param string $group Required. Group reference. Please see
+ * {@see MigrationCenterClient::groupName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\AddAssetsToGroupRequest
+ *
+ * @experimental
+ */
+ public static function build(string $group): self
+ {
+ return (new self())
+ ->setGroup($group);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $group
+ * Required. Group reference.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * @type \Google\Cloud\MigrationCenter\V1\AssetList $assets
+ * Required. List of assets to be added.
+ * The maximum number of assets that can be added in a single request is
+ * 1000.
+ * @type bool $allow_existing
+ * Optional. When this value is set to `false` and one of the given assets is
+ * already an existing member of the group, the operation fails with an
+ * `Already Exists` error. When set to `true` this situation is silently
+ * ignored by the server.
+ * Default value is `false`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Group reference.
+ *
+ * Generated from protobuf field string group = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getGroup()
+ {
+ return $this->group;
+ }
+
+ /**
+ * Required. Group reference.
+ *
+ * Generated from protobuf field string group = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setGroup($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->group = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. List of assets to be added.
+ * The maximum number of assets that can be added in a single request is
+ * 1000.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetList assets = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\MigrationCenter\V1\AssetList|null
+ */
+ public function getAssets()
+ {
+ return $this->assets;
+ }
+
+ public function hasAssets()
+ {
+ return isset($this->assets);
+ }
+
+ public function clearAssets()
+ {
+ unset($this->assets);
+ }
+
+ /**
+ * Required. List of assets to be added.
+ * The maximum number of assets that can be added in a single request is
+ * 1000.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetList assets = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\MigrationCenter\V1\AssetList $var
+ * @return $this
+ */
+ public function setAssets($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\AssetList::class);
+ $this->assets = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. When this value is set to `false` and one of the given assets is
+ * already an existing member of the group, the operation fails with an
+ * `Already Exists` error. When set to `true` this situation is silently
+ * ignored by the server.
+ * Default value is `false`.
+ *
+ * Generated from protobuf field bool allow_existing = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getAllowExisting()
+ {
+ return $this->allow_existing;
+ }
+
+ /**
+ * Optional. When this value is set to `false` and one of the given assets is
+ * already an existing member of the group, the operation fails with an
+ * `Already Exists` error. When set to `true` this situation is silently
+ * ignored by the server.
+ * Default value is `false`.
+ *
+ * Generated from protobuf field bool allow_existing = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setAllowExisting($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->allow_existing = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregateAssetsValuesRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregateAssetsValuesRequest.php
new file mode 100644
index 000000000000..38de4a10663f
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregateAssetsValuesRequest.php
@@ -0,0 +1,139 @@
+google.cloud.migrationcenter.v1.AggregateAssetsValuesRequest
+ */
+class AggregateAssetsValuesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for `AggregateAssetsValuesRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $parent = '';
+ /**
+ * Array of aggregations to perform.
+ * Up to 25 aggregations can be defined.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Aggregation aggregations = 2;
+ */
+ private $aggregations;
+ /**
+ * The aggregation will be performed on assets that match the provided filter.
+ *
+ * Generated from protobuf field string filter = 3;
+ */
+ protected $filter = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for `AggregateAssetsValuesRequest`.
+ * @type array<\Google\Cloud\MigrationCenter\V1\Aggregation>|\Google\Protobuf\Internal\RepeatedField $aggregations
+ * Array of aggregations to perform.
+ * Up to 25 aggregations can be defined.
+ * @type string $filter
+ * The aggregation will be performed on assets that match the provided filter.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for `AggregateAssetsValuesRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for `AggregateAssetsValuesRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Array of aggregations to perform.
+ * Up to 25 aggregations can be defined.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Aggregation aggregations = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAggregations()
+ {
+ return $this->aggregations;
+ }
+
+ /**
+ * Array of aggregations to perform.
+ * Up to 25 aggregations can be defined.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Aggregation aggregations = 2;
+ * @param array<\Google\Cloud\MigrationCenter\V1\Aggregation>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAggregations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\Aggregation::class);
+ $this->aggregations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The aggregation will be performed on assets that match the provided filter.
+ *
+ * Generated from protobuf field string filter = 3;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * The aggregation will be performed on assets that match the provided filter.
+ *
+ * Generated from protobuf field string filter = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregateAssetsValuesResponse.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregateAssetsValuesResponse.php
new file mode 100644
index 000000000000..b41c3db831c6
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregateAssetsValuesResponse.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.AggregateAssetsValuesResponse
+ */
+class AggregateAssetsValuesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The aggregation results.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.AggregationResult results = 1;
+ */
+ private $results;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\AggregationResult>|\Google\Protobuf\Internal\RepeatedField $results
+ * The aggregation results.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The aggregation results.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.AggregationResult results = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getResults()
+ {
+ return $this->results;
+ }
+
+ /**
+ * The aggregation results.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.AggregationResult results = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\AggregationResult>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setResults($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\AggregationResult::class);
+ $this->results = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Aggregation.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Aggregation.php
new file mode 100644
index 000000000000..5035de75b22c
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Aggregation.php
@@ -0,0 +1,209 @@
+google.cloud.migrationcenter.v1.Aggregation
+ */
+class Aggregation extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the field on which to aggregate.
+ *
+ * Generated from protobuf field string field = 1;
+ */
+ protected $field = '';
+ protected $aggregation_function;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $field
+ * The name of the field on which to aggregate.
+ * @type \Google\Cloud\MigrationCenter\V1\Aggregation\Count $count
+ * Count the number of matching objects.
+ * @type \Google\Cloud\MigrationCenter\V1\Aggregation\Sum $sum
+ * Sum over a numeric field.
+ * @type \Google\Cloud\MigrationCenter\V1\Aggregation\Histogram $histogram
+ * Creates a bucketed histogram of field values.
+ * @type \Google\Cloud\MigrationCenter\V1\Aggregation\Frequency $frequency
+ * Creates a frequency distribution of all field values.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the field on which to aggregate.
+ *
+ * Generated from protobuf field string field = 1;
+ * @return string
+ */
+ public function getField()
+ {
+ return $this->field;
+ }
+
+ /**
+ * The name of the field on which to aggregate.
+ *
+ * Generated from protobuf field string field = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setField($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->field = $var;
+
+ return $this;
+ }
+
+ /**
+ * Count the number of matching objects.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Aggregation.Count count = 2;
+ * @return \Google\Cloud\MigrationCenter\V1\Aggregation\Count|null
+ */
+ public function getCount()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasCount()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Count the number of matching objects.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Aggregation.Count count = 2;
+ * @param \Google\Cloud\MigrationCenter\V1\Aggregation\Count $var
+ * @return $this
+ */
+ public function setCount($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\Aggregation\Count::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Sum over a numeric field.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Aggregation.Sum sum = 3;
+ * @return \Google\Cloud\MigrationCenter\V1\Aggregation\Sum|null
+ */
+ public function getSum()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasSum()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Sum over a numeric field.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Aggregation.Sum sum = 3;
+ * @param \Google\Cloud\MigrationCenter\V1\Aggregation\Sum $var
+ * @return $this
+ */
+ public function setSum($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\Aggregation\Sum::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Creates a bucketed histogram of field values.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Aggregation.Histogram histogram = 4;
+ * @return \Google\Cloud\MigrationCenter\V1\Aggregation\Histogram|null
+ */
+ public function getHistogram()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasHistogram()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Creates a bucketed histogram of field values.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Aggregation.Histogram histogram = 4;
+ * @param \Google\Cloud\MigrationCenter\V1\Aggregation\Histogram $var
+ * @return $this
+ */
+ public function setHistogram($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\Aggregation\Histogram::class);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Creates a frequency distribution of all field values.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Aggregation.Frequency frequency = 5;
+ * @return \Google\Cloud\MigrationCenter\V1\Aggregation\Frequency|null
+ */
+ public function getFrequency()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasFrequency()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Creates a frequency distribution of all field values.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Aggregation.Frequency frequency = 5;
+ * @param \Google\Cloud\MigrationCenter\V1\Aggregation\Frequency $var
+ * @return $this
+ */
+ public function setFrequency($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\Aggregation\Frequency::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getAggregationFunction()
+ {
+ return $this->whichOneof("aggregation_function");
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Aggregation/Count.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Aggregation/Count.php
new file mode 100644
index 000000000000..f55240e0af88
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Aggregation/Count.php
@@ -0,0 +1,36 @@
+google.cloud.migrationcenter.v1.Aggregation.Count
+ */
+class Count extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Count::class, \Google\Cloud\MigrationCenter\V1\Aggregation_Count::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Aggregation/Frequency.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Aggregation/Frequency.php
new file mode 100644
index 000000000000..cf3d70ec7ef9
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Aggregation/Frequency.php
@@ -0,0 +1,36 @@
+google.cloud.migrationcenter.v1.Aggregation.Frequency
+ */
+class Frequency extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Frequency::class, \Google\Cloud\MigrationCenter\V1\Aggregation_Frequency::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Aggregation/Histogram.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Aggregation/Histogram.php
new file mode 100644
index 000000000000..73db78d7c763
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Aggregation/Histogram.php
@@ -0,0 +1,102 @@
+google.cloud.migrationcenter.v1.Aggregation.Histogram
+ */
+class Histogram extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Lower bounds of buckets.
+ * The response will contain `n+1` buckets for `n` bounds.
+ * The first bucket will count all assets for which the field value is
+ * smaller than the first bound.
+ * Subsequent buckets will count assets for which the field value is
+ * greater or equal to a lower bound and smaller than the next one.
+ * The last bucket will count assets for which the field value is greater or
+ * equal to the final lower bound.
+ * You can define up to 20 lower bounds.
+ *
+ * Generated from protobuf field repeated double lower_bounds = 1;
+ */
+ private $lower_bounds;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $lower_bounds
+ * Lower bounds of buckets.
+ * The response will contain `n+1` buckets for `n` bounds.
+ * The first bucket will count all assets for which the field value is
+ * smaller than the first bound.
+ * Subsequent buckets will count assets for which the field value is
+ * greater or equal to a lower bound and smaller than the next one.
+ * The last bucket will count assets for which the field value is greater or
+ * equal to the final lower bound.
+ * You can define up to 20 lower bounds.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Lower bounds of buckets.
+ * The response will contain `n+1` buckets for `n` bounds.
+ * The first bucket will count all assets for which the field value is
+ * smaller than the first bound.
+ * Subsequent buckets will count assets for which the field value is
+ * greater or equal to a lower bound and smaller than the next one.
+ * The last bucket will count assets for which the field value is greater or
+ * equal to the final lower bound.
+ * You can define up to 20 lower bounds.
+ *
+ * Generated from protobuf field repeated double lower_bounds = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getLowerBounds()
+ {
+ return $this->lower_bounds;
+ }
+
+ /**
+ * Lower bounds of buckets.
+ * The response will contain `n+1` buckets for `n` bounds.
+ * The first bucket will count all assets for which the field value is
+ * smaller than the first bound.
+ * Subsequent buckets will count assets for which the field value is
+ * greater or equal to a lower bound and smaller than the next one.
+ * The last bucket will count assets for which the field value is greater or
+ * equal to the final lower bound.
+ * You can define up to 20 lower bounds.
+ *
+ * Generated from protobuf field repeated double lower_bounds = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setLowerBounds($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::DOUBLE);
+ $this->lower_bounds = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Histogram::class, \Google\Cloud\MigrationCenter\V1\Aggregation_Histogram::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Aggregation/Sum.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Aggregation/Sum.php
new file mode 100644
index 000000000000..5181d3c7a311
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Aggregation/Sum.php
@@ -0,0 +1,36 @@
+google.cloud.migrationcenter.v1.Aggregation.Sum
+ */
+class Sum extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Sum::class, \Google\Cloud\MigrationCenter\V1\Aggregation_Sum::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult.php
new file mode 100644
index 000000000000..bc0d13e64663
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult.php
@@ -0,0 +1,181 @@
+google.cloud.migrationcenter.v1.AggregationResult
+ */
+class AggregationResult extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Generated from protobuf field string field = 1;
+ */
+ protected $field = '';
+ protected $result;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $field
+ * @type \Google\Cloud\MigrationCenter\V1\AggregationResult\Count $count
+ * @type \Google\Cloud\MigrationCenter\V1\AggregationResult\Sum $sum
+ * @type \Google\Cloud\MigrationCenter\V1\AggregationResult\Histogram $histogram
+ * @type \Google\Cloud\MigrationCenter\V1\AggregationResult\Frequency $frequency
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Generated from protobuf field string field = 1;
+ * @return string
+ */
+ public function getField()
+ {
+ return $this->field;
+ }
+
+ /**
+ * Generated from protobuf field string field = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setField($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->field = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AggregationResult.Count count = 2;
+ * @return \Google\Cloud\MigrationCenter\V1\AggregationResult\Count|null
+ */
+ public function getCount()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasCount()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AggregationResult.Count count = 2;
+ * @param \Google\Cloud\MigrationCenter\V1\AggregationResult\Count $var
+ * @return $this
+ */
+ public function setCount($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\AggregationResult\Count::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AggregationResult.Sum sum = 3;
+ * @return \Google\Cloud\MigrationCenter\V1\AggregationResult\Sum|null
+ */
+ public function getSum()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasSum()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AggregationResult.Sum sum = 3;
+ * @param \Google\Cloud\MigrationCenter\V1\AggregationResult\Sum $var
+ * @return $this
+ */
+ public function setSum($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\AggregationResult\Sum::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AggregationResult.Histogram histogram = 4;
+ * @return \Google\Cloud\MigrationCenter\V1\AggregationResult\Histogram|null
+ */
+ public function getHistogram()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasHistogram()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AggregationResult.Histogram histogram = 4;
+ * @param \Google\Cloud\MigrationCenter\V1\AggregationResult\Histogram $var
+ * @return $this
+ */
+ public function setHistogram($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\AggregationResult\Histogram::class);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AggregationResult.Frequency frequency = 5;
+ * @return \Google\Cloud\MigrationCenter\V1\AggregationResult\Frequency|null
+ */
+ public function getFrequency()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasFrequency()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AggregationResult.Frequency frequency = 5;
+ * @param \Google\Cloud\MigrationCenter\V1\AggregationResult\Frequency $var
+ * @return $this
+ */
+ public function setFrequency($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\AggregationResult\Frequency::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getResult()
+ {
+ return $this->whichOneof("result");
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult/Count.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult/Count.php
new file mode 100644
index 000000000000..82125a40ceb6
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult/Count.php
@@ -0,0 +1,63 @@
+google.cloud.migrationcenter.v1.AggregationResult.Count
+ */
+class Count extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Generated from protobuf field int64 value = 1;
+ */
+ protected $value = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $value
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Generated from protobuf field int64 value = 1;
+ * @return int|string
+ */
+ public function getValue()
+ {
+ return $this->value;
+ }
+
+ /**
+ * Generated from protobuf field int64 value = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setValue($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->value = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Count::class, \Google\Cloud\MigrationCenter\V1\AggregationResult_Count::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult/Frequency.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult/Frequency.php
new file mode 100644
index 000000000000..abcbadcdaa59
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult/Frequency.php
@@ -0,0 +1,63 @@
+google.cloud.migrationcenter.v1.AggregationResult.Frequency
+ */
+class Frequency extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Generated from protobuf field map values = 1;
+ */
+ private $values;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\MapField $values
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Generated from protobuf field map values = 1;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getValues()
+ {
+ return $this->values;
+ }
+
+ /**
+ * Generated from protobuf field map values = 1;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setValues($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::INT64);
+ $this->values = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Frequency::class, \Google\Cloud\MigrationCenter\V1\AggregationResult_Frequency::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult/Histogram.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult/Histogram.php
new file mode 100644
index 000000000000..0343bc4390f2
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult/Histogram.php
@@ -0,0 +1,86 @@
+google.cloud.migrationcenter.v1.AggregationResult.Histogram
+ */
+class Histogram extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Buckets in the histogram.
+ * There will be `n+1` buckets matching `n` lower bounds in the request.
+ * The first bucket will be from -infinity to the first bound.
+ * Subsequent buckets will be between one bound and the next.
+ * The final bucket will be from the final bound to infinity.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.AggregationResult.Histogram.Bucket buckets = 1;
+ */
+ private $buckets;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\AggregationResult\Histogram\Bucket>|\Google\Protobuf\Internal\RepeatedField $buckets
+ * Buckets in the histogram.
+ * There will be `n+1` buckets matching `n` lower bounds in the request.
+ * The first bucket will be from -infinity to the first bound.
+ * Subsequent buckets will be between one bound and the next.
+ * The final bucket will be from the final bound to infinity.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Buckets in the histogram.
+ * There will be `n+1` buckets matching `n` lower bounds in the request.
+ * The first bucket will be from -infinity to the first bound.
+ * Subsequent buckets will be between one bound and the next.
+ * The final bucket will be from the final bound to infinity.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.AggregationResult.Histogram.Bucket buckets = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getBuckets()
+ {
+ return $this->buckets;
+ }
+
+ /**
+ * Buckets in the histogram.
+ * There will be `n+1` buckets matching `n` lower bounds in the request.
+ * The first bucket will be from -infinity to the first bound.
+ * Subsequent buckets will be between one bound and the next.
+ * The final bucket will be from the final bound to infinity.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.AggregationResult.Histogram.Bucket buckets = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\AggregationResult\Histogram\Bucket>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setBuckets($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\AggregationResult\Histogram\Bucket::class);
+ $this->buckets = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Histogram::class, \Google\Cloud\MigrationCenter\V1\AggregationResult_Histogram::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult/Histogram/Bucket.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult/Histogram/Bucket.php
new file mode 100644
index 000000000000..bfc4030ab137
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult/Histogram/Bucket.php
@@ -0,0 +1,141 @@
+google.cloud.migrationcenter.v1.AggregationResult.Histogram.Bucket
+ */
+class Bucket extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Lower bound - inclusive.
+ *
+ * Generated from protobuf field double lower_bound = 1;
+ */
+ protected $lower_bound = 0.0;
+ /**
+ * Upper bound - exclusive.
+ *
+ * Generated from protobuf field double upper_bound = 2;
+ */
+ protected $upper_bound = 0.0;
+ /**
+ * Count of items in the bucket.
+ *
+ * Generated from protobuf field int64 count = 3;
+ */
+ protected $count = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type float $lower_bound
+ * Lower bound - inclusive.
+ * @type float $upper_bound
+ * Upper bound - exclusive.
+ * @type int|string $count
+ * Count of items in the bucket.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Lower bound - inclusive.
+ *
+ * Generated from protobuf field double lower_bound = 1;
+ * @return float
+ */
+ public function getLowerBound()
+ {
+ return $this->lower_bound;
+ }
+
+ /**
+ * Lower bound - inclusive.
+ *
+ * Generated from protobuf field double lower_bound = 1;
+ * @param float $var
+ * @return $this
+ */
+ public function setLowerBound($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->lower_bound = $var;
+
+ return $this;
+ }
+
+ /**
+ * Upper bound - exclusive.
+ *
+ * Generated from protobuf field double upper_bound = 2;
+ * @return float
+ */
+ public function getUpperBound()
+ {
+ return $this->upper_bound;
+ }
+
+ /**
+ * Upper bound - exclusive.
+ *
+ * Generated from protobuf field double upper_bound = 2;
+ * @param float $var
+ * @return $this
+ */
+ public function setUpperBound($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->upper_bound = $var;
+
+ return $this;
+ }
+
+ /**
+ * Count of items in the bucket.
+ *
+ * Generated from protobuf field int64 count = 3;
+ * @return int|string
+ */
+ public function getCount()
+ {
+ return $this->count;
+ }
+
+ /**
+ * Count of items in the bucket.
+ *
+ * Generated from protobuf field int64 count = 3;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->count = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Bucket::class, \Google\Cloud\MigrationCenter\V1\AggregationResult_Histogram_Bucket::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult/Sum.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult/Sum.php
new file mode 100644
index 000000000000..414a36fa146a
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AggregationResult/Sum.php
@@ -0,0 +1,63 @@
+google.cloud.migrationcenter.v1.AggregationResult.Sum
+ */
+class Sum extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Generated from protobuf field double value = 1;
+ */
+ protected $value = 0.0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type float $value
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Generated from protobuf field double value = 1;
+ * @return float
+ */
+ public function getValue()
+ {
+ return $this->value;
+ }
+
+ /**
+ * Generated from protobuf field double value = 1;
+ * @param float $var
+ * @return $this
+ */
+ public function setValue($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->value = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Sum::class, \Google\Cloud\MigrationCenter\V1\AggregationResult_Sum::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Asset.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Asset.php
new file mode 100644
index 000000000000..7838a624d2b5
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Asset.php
@@ -0,0 +1,425 @@
+google.cloud.migrationcenter.v1.Asset
+ */
+class Asset extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The full name of the asset.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Output only. The timestamp when the asset was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The timestamp when the asset was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * Labels as key value pairs.
+ *
+ * Generated from protobuf field map labels = 4;
+ */
+ private $labels;
+ /**
+ * Generic asset attributes.
+ *
+ * Generated from protobuf field map attributes = 5;
+ */
+ private $attributes;
+ /**
+ * Output only. The list of insights associated with the asset.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.InsightList insight_list = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $insight_list = null;
+ /**
+ * Output only. Performance data for the asset.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetPerformanceData performance_data = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $performance_data = null;
+ /**
+ * Output only. The list of sources contributing to the asset.
+ *
+ * Generated from protobuf field repeated string sources = 22 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ private $sources;
+ /**
+ * Output only. The list of groups that the asset is assigned to.
+ *
+ * Generated from protobuf field repeated string assigned_groups = 23 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ private $assigned_groups;
+ protected $AssetDetails;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The full name of the asset.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The timestamp when the asset was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The timestamp when the asset was last updated.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Labels as key value pairs.
+ * @type array|\Google\Protobuf\Internal\MapField $attributes
+ * Generic asset attributes.
+ * @type \Google\Cloud\MigrationCenter\V1\MachineDetails $machine_details
+ * Output only. Asset information specific for virtual and physical
+ * machines.
+ * @type \Google\Cloud\MigrationCenter\V1\InsightList $insight_list
+ * Output only. The list of insights associated with the asset.
+ * @type \Google\Cloud\MigrationCenter\V1\AssetPerformanceData $performance_data
+ * Output only. Performance data for the asset.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $sources
+ * Output only. The list of sources contributing to the asset.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $assigned_groups
+ * Output only. The list of groups that the asset is assigned to.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The full name of the asset.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The full name of the asset.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The timestamp when the asset was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The timestamp when the asset was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The timestamp when the asset was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The timestamp when the asset was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Labels as key value pairs.
+ *
+ * Generated from protobuf field map labels = 4;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Labels as key value pairs.
+ *
+ * Generated from protobuf field map labels = 4;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->labels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Generic asset attributes.
+ *
+ * Generated from protobuf field map attributes = 5;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAttributes()
+ {
+ return $this->attributes;
+ }
+
+ /**
+ * Generic asset attributes.
+ *
+ * Generated from protobuf field map attributes = 5;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAttributes($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->attributes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Asset information specific for virtual and physical
+ * machines.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineDetails machine_details = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\MigrationCenter\V1\MachineDetails|null
+ */
+ public function getMachineDetails()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasMachineDetails()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * Output only. Asset information specific for virtual and physical
+ * machines.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineDetails machine_details = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\MigrationCenter\V1\MachineDetails $var
+ * @return $this
+ */
+ public function setMachineDetails($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\MachineDetails::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The list of insights associated with the asset.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.InsightList insight_list = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\MigrationCenter\V1\InsightList|null
+ */
+ public function getInsightList()
+ {
+ return $this->insight_list;
+ }
+
+ public function hasInsightList()
+ {
+ return isset($this->insight_list);
+ }
+
+ public function clearInsightList()
+ {
+ unset($this->insight_list);
+ }
+
+ /**
+ * Output only. The list of insights associated with the asset.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.InsightList insight_list = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\MigrationCenter\V1\InsightList $var
+ * @return $this
+ */
+ public function setInsightList($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\InsightList::class);
+ $this->insight_list = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Performance data for the asset.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetPerformanceData performance_data = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\MigrationCenter\V1\AssetPerformanceData|null
+ */
+ public function getPerformanceData()
+ {
+ return $this->performance_data;
+ }
+
+ public function hasPerformanceData()
+ {
+ return isset($this->performance_data);
+ }
+
+ public function clearPerformanceData()
+ {
+ unset($this->performance_data);
+ }
+
+ /**
+ * Output only. Performance data for the asset.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetPerformanceData performance_data = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\MigrationCenter\V1\AssetPerformanceData $var
+ * @return $this
+ */
+ public function setPerformanceData($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\AssetPerformanceData::class);
+ $this->performance_data = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The list of sources contributing to the asset.
+ *
+ * Generated from protobuf field repeated string sources = 22 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSources()
+ {
+ return $this->sources;
+ }
+
+ /**
+ * Output only. The list of sources contributing to the asset.
+ *
+ * Generated from protobuf field repeated string sources = 22 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSources($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->sources = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The list of groups that the asset is assigned to.
+ *
+ * Generated from protobuf field repeated string assigned_groups = 23 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAssignedGroups()
+ {
+ return $this->assigned_groups;
+ }
+
+ /**
+ * Output only. The list of groups that the asset is assigned to.
+ *
+ * Generated from protobuf field repeated string assigned_groups = 23 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAssignedGroups($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->assigned_groups = $arr;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getAssetDetails()
+ {
+ return $this->whichOneof("AssetDetails");
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AssetFrame.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AssetFrame.php
new file mode 100644
index 000000000000..cbd99ab9cb59
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AssetFrame.php
@@ -0,0 +1,263 @@
+google.cloud.migrationcenter.v1.AssetFrame
+ */
+class AssetFrame extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The time the data was reported.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp report_time = 10;
+ */
+ protected $report_time = null;
+ /**
+ * Labels as key value pairs.
+ *
+ * Generated from protobuf field map labels = 11;
+ */
+ private $labels;
+ /**
+ * Generic asset attributes.
+ *
+ * Generated from protobuf field map attributes = 12;
+ */
+ private $attributes;
+ /**
+ * Asset performance data samples.
+ * Samples that are from more than 40 days ago or after tomorrow are ignored.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.PerformanceSample performance_samples = 13;
+ */
+ private $performance_samples;
+ /**
+ * Optional. Trace token is optionally provided to assist with debugging and
+ * traceability.
+ *
+ * Generated from protobuf field string trace_token = 14 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $trace_token = '';
+ protected $FrameData;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MigrationCenter\V1\MachineDetails $machine_details
+ * Asset information specific for virtual machines.
+ * @type \Google\Protobuf\Timestamp $report_time
+ * The time the data was reported.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Labels as key value pairs.
+ * @type array|\Google\Protobuf\Internal\MapField $attributes
+ * Generic asset attributes.
+ * @type array<\Google\Cloud\MigrationCenter\V1\PerformanceSample>|\Google\Protobuf\Internal\RepeatedField $performance_samples
+ * Asset performance data samples.
+ * Samples that are from more than 40 days ago or after tomorrow are ignored.
+ * @type string $trace_token
+ * Optional. Trace token is optionally provided to assist with debugging and
+ * traceability.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Asset information specific for virtual machines.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineDetails machine_details = 1;
+ * @return \Google\Cloud\MigrationCenter\V1\MachineDetails|null
+ */
+ public function getMachineDetails()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasMachineDetails()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Asset information specific for virtual machines.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineDetails machine_details = 1;
+ * @param \Google\Cloud\MigrationCenter\V1\MachineDetails $var
+ * @return $this
+ */
+ public function setMachineDetails($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\MachineDetails::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * The time the data was reported.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp report_time = 10;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getReportTime()
+ {
+ return $this->report_time;
+ }
+
+ public function hasReportTime()
+ {
+ return isset($this->report_time);
+ }
+
+ public function clearReportTime()
+ {
+ unset($this->report_time);
+ }
+
+ /**
+ * The time the data was reported.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp report_time = 10;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setReportTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->report_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Labels as key value pairs.
+ *
+ * Generated from protobuf field map labels = 11;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Labels as key value pairs.
+ *
+ * Generated from protobuf field map labels = 11;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->labels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Generic asset attributes.
+ *
+ * Generated from protobuf field map attributes = 12;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAttributes()
+ {
+ return $this->attributes;
+ }
+
+ /**
+ * Generic asset attributes.
+ *
+ * Generated from protobuf field map attributes = 12;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAttributes($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->attributes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Asset performance data samples.
+ * Samples that are from more than 40 days ago or after tomorrow are ignored.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.PerformanceSample performance_samples = 13;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPerformanceSamples()
+ {
+ return $this->performance_samples;
+ }
+
+ /**
+ * Asset performance data samples.
+ * Samples that are from more than 40 days ago or after tomorrow are ignored.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.PerformanceSample performance_samples = 13;
+ * @param array<\Google\Cloud\MigrationCenter\V1\PerformanceSample>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPerformanceSamples($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\PerformanceSample::class);
+ $this->performance_samples = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Trace token is optionally provided to assist with debugging and
+ * traceability.
+ *
+ * Generated from protobuf field string trace_token = 14 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getTraceToken()
+ {
+ return $this->trace_token;
+ }
+
+ /**
+ * Optional. Trace token is optionally provided to assist with debugging and
+ * traceability.
+ *
+ * Generated from protobuf field string trace_token = 14 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setTraceToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->trace_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getFrameData()
+ {
+ return $this->whichOneof("FrameData");
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AssetList.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AssetList.php
new file mode 100644
index 000000000000..0f91dbc432d0
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AssetList.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.AssetList
+ */
+class AssetList extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. A list of asset IDs
+ *
+ * Generated from protobuf field repeated string asset_ids = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $asset_ids;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $asset_ids
+ * Required. A list of asset IDs
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. A list of asset IDs
+ *
+ * Generated from protobuf field repeated string asset_ids = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAssetIds()
+ {
+ return $this->asset_ids;
+ }
+
+ /**
+ * Required. A list of asset IDs
+ *
+ * Generated from protobuf field repeated string asset_ids = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAssetIds($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->asset_ids = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AssetPerformanceData.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AssetPerformanceData.php
new file mode 100644
index 000000000000..a043cf9248e9
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AssetPerformanceData.php
@@ -0,0 +1,75 @@
+google.cloud.migrationcenter.v1.AssetPerformanceData
+ */
+class AssetPerformanceData extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Daily resource usage aggregations.
+ * Contains all of the data available for an asset, up to the last 420 days.
+ * Aggregations are sorted from oldest to most recent.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation daily_resource_usage_aggregations = 1;
+ */
+ private $daily_resource_usage_aggregations;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation>|\Google\Protobuf\Internal\RepeatedField $daily_resource_usage_aggregations
+ * Daily resource usage aggregations.
+ * Contains all of the data available for an asset, up to the last 420 days.
+ * Aggregations are sorted from oldest to most recent.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Daily resource usage aggregations.
+ * Contains all of the data available for an asset, up to the last 420 days.
+ * Aggregations are sorted from oldest to most recent.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation daily_resource_usage_aggregations = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDailyResourceUsageAggregations()
+ {
+ return $this->daily_resource_usage_aggregations;
+ }
+
+ /**
+ * Daily resource usage aggregations.
+ * Contains all of the data available for an asset, up to the last 420 days.
+ * Aggregations are sorted from oldest to most recent.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation daily_resource_usage_aggregations = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDailyResourceUsageAggregations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation::class);
+ $this->daily_resource_usage_aggregations = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AssetView.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AssetView.php
new file mode 100644
index 000000000000..8a7721b084f7
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AssetView.php
@@ -0,0 +1,63 @@
+google.cloud.migrationcenter.v1.AssetView
+ */
+class AssetView
+{
+ /**
+ * The asset view is not specified. The API displays the basic view by
+ * default.
+ *
+ * Generated from protobuf enum ASSET_VIEW_UNSPECIFIED = 0;
+ */
+ const ASSET_VIEW_UNSPECIFIED = 0;
+ /**
+ * The asset view includes only basic metadata of the asset.
+ *
+ * Generated from protobuf enum ASSET_VIEW_BASIC = 1;
+ */
+ const ASSET_VIEW_BASIC = 1;
+ /**
+ * The asset view includes all the metadata of an asset and performance data.
+ *
+ * Generated from protobuf enum ASSET_VIEW_FULL = 2;
+ */
+ const ASSET_VIEW_FULL = 2;
+
+ private static $valueToName = [
+ self::ASSET_VIEW_UNSPECIFIED => 'ASSET_VIEW_UNSPECIFIED',
+ self::ASSET_VIEW_BASIC => 'ASSET_VIEW_BASIC',
+ self::ASSET_VIEW_FULL => 'ASSET_VIEW_FULL',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AwsEc2PlatformDetails.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AwsEc2PlatformDetails.php
new file mode 100644
index 000000000000..a296b339037a
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AwsEc2PlatformDetails.php
@@ -0,0 +1,101 @@
+google.cloud.migrationcenter.v1.AwsEc2PlatformDetails
+ */
+class AwsEc2PlatformDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * AWS platform's machine type label.
+ *
+ * Generated from protobuf field string machine_type_label = 1;
+ */
+ protected $machine_type_label = '';
+ /**
+ * The location of the machine in the AWS format.
+ *
+ * Generated from protobuf field string location = 2;
+ */
+ protected $location = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $machine_type_label
+ * AWS platform's machine type label.
+ * @type string $location
+ * The location of the machine in the AWS format.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * AWS platform's machine type label.
+ *
+ * Generated from protobuf field string machine_type_label = 1;
+ * @return string
+ */
+ public function getMachineTypeLabel()
+ {
+ return $this->machine_type_label;
+ }
+
+ /**
+ * AWS platform's machine type label.
+ *
+ * Generated from protobuf field string machine_type_label = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setMachineTypeLabel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->machine_type_label = $var;
+
+ return $this;
+ }
+
+ /**
+ * The location of the machine in the AWS format.
+ *
+ * Generated from protobuf field string location = 2;
+ * @return string
+ */
+ public function getLocation()
+ {
+ return $this->location;
+ }
+
+ /**
+ * The location of the machine in the AWS format.
+ *
+ * Generated from protobuf field string location = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setLocation($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->location = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AzureVmPlatformDetails.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AzureVmPlatformDetails.php
new file mode 100644
index 000000000000..301fdf059374
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/AzureVmPlatformDetails.php
@@ -0,0 +1,135 @@
+google.cloud.migrationcenter.v1.AzureVmPlatformDetails
+ */
+class AzureVmPlatformDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Azure platform's machine type label.
+ *
+ * Generated from protobuf field string machine_type_label = 1;
+ */
+ protected $machine_type_label = '';
+ /**
+ * The location of the machine in the Azure format.
+ *
+ * Generated from protobuf field string location = 2;
+ */
+ protected $location = '';
+ /**
+ * Azure platform's provisioning state.
+ *
+ * Generated from protobuf field string provisioning_state = 3;
+ */
+ protected $provisioning_state = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $machine_type_label
+ * Azure platform's machine type label.
+ * @type string $location
+ * The location of the machine in the Azure format.
+ * @type string $provisioning_state
+ * Azure platform's provisioning state.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Azure platform's machine type label.
+ *
+ * Generated from protobuf field string machine_type_label = 1;
+ * @return string
+ */
+ public function getMachineTypeLabel()
+ {
+ return $this->machine_type_label;
+ }
+
+ /**
+ * Azure platform's machine type label.
+ *
+ * Generated from protobuf field string machine_type_label = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setMachineTypeLabel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->machine_type_label = $var;
+
+ return $this;
+ }
+
+ /**
+ * The location of the machine in the Azure format.
+ *
+ * Generated from protobuf field string location = 2;
+ * @return string
+ */
+ public function getLocation()
+ {
+ return $this->location;
+ }
+
+ /**
+ * The location of the machine in the Azure format.
+ *
+ * Generated from protobuf field string location = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setLocation($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->location = $var;
+
+ return $this;
+ }
+
+ /**
+ * Azure platform's provisioning state.
+ *
+ * Generated from protobuf field string provisioning_state = 3;
+ * @return string
+ */
+ public function getProvisioningState()
+ {
+ return $this->provisioning_state;
+ }
+
+ /**
+ * Azure platform's provisioning state.
+ *
+ * Generated from protobuf field string provisioning_state = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setProvisioningState($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->provisioning_state = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/BatchDeleteAssetsRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/BatchDeleteAssetsRequest.php
new file mode 100644
index 000000000000..bd2d1da5d670
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/BatchDeleteAssetsRequest.php
@@ -0,0 +1,170 @@
+google.cloud.migrationcenter.v1.BatchDeleteAssetsRequest
+ */
+class BatchDeleteAssetsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for batch asset delete.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The IDs of the assets to delete.
+ * A maximum of 1000 assets can be deleted in a batch.
+ * Format: projects/{project}/locations/{location}/assets/{name}.
+ *
+ * Generated from protobuf field repeated string names = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $names;
+ /**
+ * Optional. When this value is set to `true` the request is a no-op for
+ * non-existing assets. See https://google.aip.dev/135#delete-if-existing for
+ * additional details. Default value is `false`.
+ *
+ * Generated from protobuf field bool allow_missing = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $allow_missing = false;
+
+ /**
+ * @param string $parent Required. Parent value for batch asset delete. Please see
+ * {@see MigrationCenterClient::locationName()} for help formatting this field.
+ * @param string[] $names Required. The IDs of the assets to delete.
+ * A maximum of 1000 assets can be deleted in a batch.
+ * Format: projects/{project}/locations/{location}/assets/{name}. Please see
+ * {@see MigrationCenterClient::assetName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\BatchDeleteAssetsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, array $names): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setNames($names);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for batch asset delete.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $names
+ * Required. The IDs of the assets to delete.
+ * A maximum of 1000 assets can be deleted in a batch.
+ * Format: projects/{project}/locations/{location}/assets/{name}.
+ * @type bool $allow_missing
+ * Optional. When this value is set to `true` the request is a no-op for
+ * non-existing assets. See https://google.aip.dev/135#delete-if-existing for
+ * additional details. Default value is `false`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for batch asset delete.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for batch asset delete.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The IDs of the assets to delete.
+ * A maximum of 1000 assets can be deleted in a batch.
+ * Format: projects/{project}/locations/{location}/assets/{name}.
+ *
+ * Generated from protobuf field repeated string names = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getNames()
+ {
+ return $this->names;
+ }
+
+ /**
+ * Required. The IDs of the assets to delete.
+ * A maximum of 1000 assets can be deleted in a batch.
+ * Format: projects/{project}/locations/{location}/assets/{name}.
+ *
+ * Generated from protobuf field repeated string names = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setNames($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->names = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. When this value is set to `true` the request is a no-op for
+ * non-existing assets. See https://google.aip.dev/135#delete-if-existing for
+ * additional details. Default value is `false`.
+ *
+ * Generated from protobuf field bool allow_missing = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getAllowMissing()
+ {
+ return $this->allow_missing;
+ }
+
+ /**
+ * Optional. When this value is set to `true` the request is a no-op for
+ * non-existing assets. See https://google.aip.dev/135#delete-if-existing for
+ * additional details. Default value is `false`.
+ *
+ * Generated from protobuf field bool allow_missing = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setAllowMissing($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->allow_missing = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/BatchUpdateAssetsRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/BatchUpdateAssetsRequest.php
new file mode 100644
index 000000000000..84257e43ba54
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/BatchUpdateAssetsRequest.php
@@ -0,0 +1,122 @@
+google.cloud.migrationcenter.v1.BatchUpdateAssetsRequest
+ */
+class BatchUpdateAssetsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for batch asset update.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The request message specifying the resources to update.
+ * A maximum of 1000 assets can be modified in a batch.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.UpdateAssetRequest requests = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $requests;
+
+ /**
+ * @param string $parent Required. Parent value for batch asset update. Please see
+ * {@see MigrationCenterClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\MigrationCenter\V1\UpdateAssetRequest[] $requests Required. The request message specifying the resources to update.
+ * A maximum of 1000 assets can be modified in a batch.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\BatchUpdateAssetsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, array $requests): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setRequests($requests);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for batch asset update.
+ * @type array<\Google\Cloud\MigrationCenter\V1\UpdateAssetRequest>|\Google\Protobuf\Internal\RepeatedField $requests
+ * Required. The request message specifying the resources to update.
+ * A maximum of 1000 assets can be modified in a batch.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for batch asset update.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for batch asset update.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The request message specifying the resources to update.
+ * A maximum of 1000 assets can be modified in a batch.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.UpdateAssetRequest requests = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRequests()
+ {
+ return $this->requests;
+ }
+
+ /**
+ * Required. The request message specifying the resources to update.
+ * A maximum of 1000 assets can be modified in a batch.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.UpdateAssetRequest requests = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param array<\Google\Cloud\MigrationCenter\V1\UpdateAssetRequest>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRequests($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\UpdateAssetRequest::class);
+ $this->requests = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/BatchUpdateAssetsResponse.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/BatchUpdateAssetsResponse.php
new file mode 100644
index 000000000000..1ab18be8f7c6
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/BatchUpdateAssetsResponse.php
@@ -0,0 +1,71 @@
+google.cloud.migrationcenter.v1.BatchUpdateAssetsResponse
+ */
+class BatchUpdateAssetsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Update asset content.
+ * The content only includes values after field mask being applied.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Asset assets = 1;
+ */
+ private $assets;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\Asset>|\Google\Protobuf\Internal\RepeatedField $assets
+ * Update asset content.
+ * The content only includes values after field mask being applied.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Update asset content.
+ * The content only includes values after field mask being applied.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Asset assets = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAssets()
+ {
+ return $this->assets;
+ }
+
+ /**
+ * Update asset content.
+ * The content only includes values after field mask being applied.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Asset assets = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\Asset>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAssets($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\Asset::class);
+ $this->assets = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/BiosDetails.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/BiosDetails.php
new file mode 100644
index 000000000000..13d0fe01664b
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/BiosDetails.php
@@ -0,0 +1,256 @@
+google.cloud.migrationcenter.v1.BiosDetails
+ */
+class BiosDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * BIOS name.
+ * This fields is deprecated. Please use the `id` field instead.
+ *
+ * Generated from protobuf field string bios_name = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $bios_name = '';
+ /**
+ * BIOS ID.
+ *
+ * Generated from protobuf field string id = 2;
+ */
+ protected $id = '';
+ /**
+ * BIOS manufacturer.
+ *
+ * Generated from protobuf field string manufacturer = 3;
+ */
+ protected $manufacturer = '';
+ /**
+ * BIOS version.
+ *
+ * Generated from protobuf field string version = 4;
+ */
+ protected $version = '';
+ /**
+ * BIOS release date.
+ *
+ * Generated from protobuf field .google.type.Date release_date = 5;
+ */
+ protected $release_date = null;
+ /**
+ * SMBIOS UUID.
+ *
+ * Generated from protobuf field string smbios_uuid = 6;
+ */
+ protected $smbios_uuid = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $bios_name
+ * BIOS name.
+ * This fields is deprecated. Please use the `id` field instead.
+ * @type string $id
+ * BIOS ID.
+ * @type string $manufacturer
+ * BIOS manufacturer.
+ * @type string $version
+ * BIOS version.
+ * @type \Google\Type\Date $release_date
+ * BIOS release date.
+ * @type string $smbios_uuid
+ * SMBIOS UUID.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * BIOS name.
+ * This fields is deprecated. Please use the `id` field instead.
+ *
+ * Generated from protobuf field string bios_name = 1 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getBiosName()
+ {
+ @trigger_error('bios_name is deprecated.', E_USER_DEPRECATED);
+ return $this->bios_name;
+ }
+
+ /**
+ * BIOS name.
+ * This fields is deprecated. Please use the `id` field instead.
+ *
+ * Generated from protobuf field string bios_name = 1 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setBiosName($var)
+ {
+ @trigger_error('bios_name is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->bios_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * BIOS ID.
+ *
+ * Generated from protobuf field string id = 2;
+ * @return string
+ */
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * BIOS ID.
+ *
+ * Generated from protobuf field string id = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->id = $var;
+
+ return $this;
+ }
+
+ /**
+ * BIOS manufacturer.
+ *
+ * Generated from protobuf field string manufacturer = 3;
+ * @return string
+ */
+ public function getManufacturer()
+ {
+ return $this->manufacturer;
+ }
+
+ /**
+ * BIOS manufacturer.
+ *
+ * Generated from protobuf field string manufacturer = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setManufacturer($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->manufacturer = $var;
+
+ return $this;
+ }
+
+ /**
+ * BIOS version.
+ *
+ * Generated from protobuf field string version = 4;
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * BIOS version.
+ *
+ * Generated from protobuf field string version = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * BIOS release date.
+ *
+ * Generated from protobuf field .google.type.Date release_date = 5;
+ * @return \Google\Type\Date|null
+ */
+ public function getReleaseDate()
+ {
+ return $this->release_date;
+ }
+
+ public function hasReleaseDate()
+ {
+ return isset($this->release_date);
+ }
+
+ public function clearReleaseDate()
+ {
+ unset($this->release_date);
+ }
+
+ /**
+ * BIOS release date.
+ *
+ * Generated from protobuf field .google.type.Date release_date = 5;
+ * @param \Google\Type\Date $var
+ * @return $this
+ */
+ public function setReleaseDate($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Date::class);
+ $this->release_date = $var;
+
+ return $this;
+ }
+
+ /**
+ * SMBIOS UUID.
+ *
+ * Generated from protobuf field string smbios_uuid = 6;
+ * @return string
+ */
+ public function getSmbiosUuid()
+ {
+ return $this->smbios_uuid;
+ }
+
+ /**
+ * SMBIOS UUID.
+ *
+ * Generated from protobuf field string smbios_uuid = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setSmbiosUuid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->smbios_uuid = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CommitmentPlan.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CommitmentPlan.php
new file mode 100644
index 000000000000..ccbcd5e00664
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CommitmentPlan.php
@@ -0,0 +1,68 @@
+google.cloud.migrationcenter.v1.CommitmentPlan
+ */
+class CommitmentPlan
+{
+ /**
+ * Unspecified commitment plan.
+ *
+ * Generated from protobuf enum COMMITMENT_PLAN_UNSPECIFIED = 0;
+ */
+ const COMMITMENT_PLAN_UNSPECIFIED = 0;
+ /**
+ * No commitment plan.
+ *
+ * Generated from protobuf enum COMMITMENT_PLAN_NONE = 1;
+ */
+ const COMMITMENT_PLAN_NONE = 1;
+ /**
+ * 1 year commitment.
+ *
+ * Generated from protobuf enum COMMITMENT_PLAN_ONE_YEAR = 2;
+ */
+ const COMMITMENT_PLAN_ONE_YEAR = 2;
+ /**
+ * 3 years commitment.
+ *
+ * Generated from protobuf enum COMMITMENT_PLAN_THREE_YEARS = 3;
+ */
+ const COMMITMENT_PLAN_THREE_YEARS = 3;
+
+ private static $valueToName = [
+ self::COMMITMENT_PLAN_UNSPECIFIED => 'COMMITMENT_PLAN_UNSPECIFIED',
+ self::COMMITMENT_PLAN_NONE => 'COMMITMENT_PLAN_NONE',
+ self::COMMITMENT_PLAN_ONE_YEAR => 'COMMITMENT_PLAN_ONE_YEAR',
+ self::COMMITMENT_PLAN_THREE_YEARS => 'COMMITMENT_PLAN_THREE_YEARS',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ComputeEngineMigrationTarget.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ComputeEngineMigrationTarget.php
new file mode 100644
index 000000000000..e03c6fabc843
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ComputeEngineMigrationTarget.php
@@ -0,0 +1,77 @@
+google.cloud.migrationcenter.v1.ComputeEngineMigrationTarget
+ */
+class ComputeEngineMigrationTarget extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Description of the suggested shape for the migration target.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ComputeEngineShapeDescriptor shape = 1;
+ */
+ protected $shape = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MigrationCenter\V1\ComputeEngineShapeDescriptor $shape
+ * Description of the suggested shape for the migration target.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Description of the suggested shape for the migration target.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ComputeEngineShapeDescriptor shape = 1;
+ * @return \Google\Cloud\MigrationCenter\V1\ComputeEngineShapeDescriptor|null
+ */
+ public function getShape()
+ {
+ return $this->shape;
+ }
+
+ public function hasShape()
+ {
+ return isset($this->shape);
+ }
+
+ public function clearShape()
+ {
+ unset($this->shape);
+ }
+
+ /**
+ * Description of the suggested shape for the migration target.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ComputeEngineShapeDescriptor shape = 1;
+ * @param \Google\Cloud\MigrationCenter\V1\ComputeEngineShapeDescriptor $var
+ * @return $this
+ */
+ public function setShape($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ComputeEngineShapeDescriptor::class);
+ $this->shape = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ComputeEnginePreferences.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ComputeEnginePreferences.php
new file mode 100644
index 000000000000..34c9dbe357d2
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ComputeEnginePreferences.php
@@ -0,0 +1,119 @@
+google.cloud.migrationcenter.v1.ComputeEnginePreferences
+ */
+class ComputeEnginePreferences extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Preferences concerning the machine types to consider on Compute Engine.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachinePreferences machine_preferences = 2;
+ */
+ protected $machine_preferences = null;
+ /**
+ * License type to consider when calculating costs for virtual machine
+ * insights and recommendations. If unspecified, costs are calculated
+ * based on the default licensing plan.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.LicenseType license_type = 3;
+ */
+ protected $license_type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MigrationCenter\V1\MachinePreferences $machine_preferences
+ * Preferences concerning the machine types to consider on Compute Engine.
+ * @type int $license_type
+ * License type to consider when calculating costs for virtual machine
+ * insights and recommendations. If unspecified, costs are calculated
+ * based on the default licensing plan.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Preferences concerning the machine types to consider on Compute Engine.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachinePreferences machine_preferences = 2;
+ * @return \Google\Cloud\MigrationCenter\V1\MachinePreferences|null
+ */
+ public function getMachinePreferences()
+ {
+ return $this->machine_preferences;
+ }
+
+ public function hasMachinePreferences()
+ {
+ return isset($this->machine_preferences);
+ }
+
+ public function clearMachinePreferences()
+ {
+ unset($this->machine_preferences);
+ }
+
+ /**
+ * Preferences concerning the machine types to consider on Compute Engine.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachinePreferences machine_preferences = 2;
+ * @param \Google\Cloud\MigrationCenter\V1\MachinePreferences $var
+ * @return $this
+ */
+ public function setMachinePreferences($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\MachinePreferences::class);
+ $this->machine_preferences = $var;
+
+ return $this;
+ }
+
+ /**
+ * License type to consider when calculating costs for virtual machine
+ * insights and recommendations. If unspecified, costs are calculated
+ * based on the default licensing plan.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.LicenseType license_type = 3;
+ * @return int
+ */
+ public function getLicenseType()
+ {
+ return $this->license_type;
+ }
+
+ /**
+ * License type to consider when calculating costs for virtual machine
+ * insights and recommendations. If unspecified, costs are calculated
+ * based on the default licensing plan.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.LicenseType license_type = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setLicenseType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\LicenseType::class);
+ $this->license_type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ComputeEngineShapeDescriptor.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ComputeEngineShapeDescriptor.php
new file mode 100644
index 000000000000..3df71598456b
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ComputeEngineShapeDescriptor.php
@@ -0,0 +1,237 @@
+google.cloud.migrationcenter.v1.ComputeEngineShapeDescriptor
+ */
+class ComputeEngineShapeDescriptor extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Memory in mebibytes.
+ *
+ * Generated from protobuf field int32 memory_mb = 1;
+ */
+ protected $memory_mb = 0;
+ /**
+ * Number of physical cores.
+ *
+ * Generated from protobuf field int32 physical_core_count = 2;
+ */
+ protected $physical_core_count = 0;
+ /**
+ * Number of logical cores.
+ *
+ * Generated from protobuf field int32 logical_core_count = 3;
+ */
+ protected $logical_core_count = 0;
+ /**
+ * Compute Engine machine series.
+ *
+ * Generated from protobuf field string series = 4;
+ */
+ protected $series = '';
+ /**
+ * Compute Engine machine type.
+ *
+ * Generated from protobuf field string machine_type = 5;
+ */
+ protected $machine_type = '';
+ /**
+ * Compute Engine storage. Never empty.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ComputeStorageDescriptor storage = 6;
+ */
+ private $storage;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $memory_mb
+ * Memory in mebibytes.
+ * @type int $physical_core_count
+ * Number of physical cores.
+ * @type int $logical_core_count
+ * Number of logical cores.
+ * @type string $series
+ * Compute Engine machine series.
+ * @type string $machine_type
+ * Compute Engine machine type.
+ * @type array<\Google\Cloud\MigrationCenter\V1\ComputeStorageDescriptor>|\Google\Protobuf\Internal\RepeatedField $storage
+ * Compute Engine storage. Never empty.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Memory in mebibytes.
+ *
+ * Generated from protobuf field int32 memory_mb = 1;
+ * @return int
+ */
+ public function getMemoryMb()
+ {
+ return $this->memory_mb;
+ }
+
+ /**
+ * Memory in mebibytes.
+ *
+ * Generated from protobuf field int32 memory_mb = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setMemoryMb($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->memory_mb = $var;
+
+ return $this;
+ }
+
+ /**
+ * Number of physical cores.
+ *
+ * Generated from protobuf field int32 physical_core_count = 2;
+ * @return int
+ */
+ public function getPhysicalCoreCount()
+ {
+ return $this->physical_core_count;
+ }
+
+ /**
+ * Number of physical cores.
+ *
+ * Generated from protobuf field int32 physical_core_count = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPhysicalCoreCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->physical_core_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Number of logical cores.
+ *
+ * Generated from protobuf field int32 logical_core_count = 3;
+ * @return int
+ */
+ public function getLogicalCoreCount()
+ {
+ return $this->logical_core_count;
+ }
+
+ /**
+ * Number of logical cores.
+ *
+ * Generated from protobuf field int32 logical_core_count = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setLogicalCoreCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->logical_core_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Compute Engine machine series.
+ *
+ * Generated from protobuf field string series = 4;
+ * @return string
+ */
+ public function getSeries()
+ {
+ return $this->series;
+ }
+
+ /**
+ * Compute Engine machine series.
+ *
+ * Generated from protobuf field string series = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setSeries($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->series = $var;
+
+ return $this;
+ }
+
+ /**
+ * Compute Engine machine type.
+ *
+ * Generated from protobuf field string machine_type = 5;
+ * @return string
+ */
+ public function getMachineType()
+ {
+ return $this->machine_type;
+ }
+
+ /**
+ * Compute Engine machine type.
+ *
+ * Generated from protobuf field string machine_type = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setMachineType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->machine_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Compute Engine storage. Never empty.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ComputeStorageDescriptor storage = 6;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getStorage()
+ {
+ return $this->storage;
+ }
+
+ /**
+ * Compute Engine storage. Never empty.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ComputeStorageDescriptor storage = 6;
+ * @param array<\Google\Cloud\MigrationCenter\V1\ComputeStorageDescriptor>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setStorage($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ComputeStorageDescriptor::class);
+ $this->storage = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ComputeMigrationTargetProduct.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ComputeMigrationTargetProduct.php
new file mode 100644
index 000000000000..de1c5e1e2915
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ComputeMigrationTargetProduct.php
@@ -0,0 +1,68 @@
+google.cloud.migrationcenter.v1.ComputeMigrationTargetProduct
+ */
+class ComputeMigrationTargetProduct
+{
+ /**
+ * Unspecified (default value).
+ *
+ * Generated from protobuf enum COMPUTE_MIGRATION_TARGET_PRODUCT_UNSPECIFIED = 0;
+ */
+ const COMPUTE_MIGRATION_TARGET_PRODUCT_UNSPECIFIED = 0;
+ /**
+ * Prefer to migrate to Google Cloud Compute Engine.
+ *
+ * Generated from protobuf enum COMPUTE_MIGRATION_TARGET_PRODUCT_COMPUTE_ENGINE = 1;
+ */
+ const COMPUTE_MIGRATION_TARGET_PRODUCT_COMPUTE_ENGINE = 1;
+ /**
+ * Prefer to migrate to Google Cloud VMware Engine.
+ *
+ * Generated from protobuf enum COMPUTE_MIGRATION_TARGET_PRODUCT_VMWARE_ENGINE = 2;
+ */
+ const COMPUTE_MIGRATION_TARGET_PRODUCT_VMWARE_ENGINE = 2;
+ /**
+ * Prefer to migrate to Google Cloud Sole Tenant Nodes.
+ *
+ * Generated from protobuf enum COMPUTE_MIGRATION_TARGET_PRODUCT_SOLE_TENANCY = 3;
+ */
+ const COMPUTE_MIGRATION_TARGET_PRODUCT_SOLE_TENANCY = 3;
+
+ private static $valueToName = [
+ self::COMPUTE_MIGRATION_TARGET_PRODUCT_UNSPECIFIED => 'COMPUTE_MIGRATION_TARGET_PRODUCT_UNSPECIFIED',
+ self::COMPUTE_MIGRATION_TARGET_PRODUCT_COMPUTE_ENGINE => 'COMPUTE_MIGRATION_TARGET_PRODUCT_COMPUTE_ENGINE',
+ self::COMPUTE_MIGRATION_TARGET_PRODUCT_VMWARE_ENGINE => 'COMPUTE_MIGRATION_TARGET_PRODUCT_VMWARE_ENGINE',
+ self::COMPUTE_MIGRATION_TARGET_PRODUCT_SOLE_TENANCY => 'COMPUTE_MIGRATION_TARGET_PRODUCT_SOLE_TENANCY',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ComputeStorageDescriptor.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ComputeStorageDescriptor.php
new file mode 100644
index 000000000000..bca525749f7a
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ComputeStorageDescriptor.php
@@ -0,0 +1,101 @@
+google.cloud.migrationcenter.v1.ComputeStorageDescriptor
+ */
+class ComputeStorageDescriptor extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Disk type backing the storage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.PersistentDiskType type = 1;
+ */
+ protected $type = 0;
+ /**
+ * Disk size in GiB.
+ *
+ * Generated from protobuf field int32 size_gb = 2;
+ */
+ protected $size_gb = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $type
+ * Disk type backing the storage.
+ * @type int $size_gb
+ * Disk size in GiB.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Disk type backing the storage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.PersistentDiskType type = 1;
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Disk type backing the storage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.PersistentDiskType type = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\PersistentDiskType::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Disk size in GiB.
+ *
+ * Generated from protobuf field int32 size_gb = 2;
+ * @return int
+ */
+ public function getSizeGb()
+ {
+ return $this->size_gb;
+ }
+
+ /**
+ * Disk size in GiB.
+ *
+ * Generated from protobuf field int32 size_gb = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setSizeGb($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->size_gb = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CpuUsageSample.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CpuUsageSample.php
new file mode 100644
index 000000000000..9670ebb811f7
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CpuUsageSample.php
@@ -0,0 +1,71 @@
+google.cloud.migrationcenter.v1.CpuUsageSample
+ */
+class CpuUsageSample extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Percentage of total CPU capacity utilized. Must be in the interval [0,
+ * 100]. On most systems can be calculated using 100 - idle percentage.
+ *
+ * Generated from protobuf field float utilized_percentage = 1;
+ */
+ protected $utilized_percentage = 0.0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type float $utilized_percentage
+ * Percentage of total CPU capacity utilized. Must be in the interval [0,
+ * 100]. On most systems can be calculated using 100 - idle percentage.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Percentage of total CPU capacity utilized. Must be in the interval [0,
+ * 100]. On most systems can be calculated using 100 - idle percentage.
+ *
+ * Generated from protobuf field float utilized_percentage = 1;
+ * @return float
+ */
+ public function getUtilizedPercentage()
+ {
+ return $this->utilized_percentage;
+ }
+
+ /**
+ * Percentage of total CPU capacity utilized. Must be in the interval [0,
+ * 100]. On most systems can be calculated using 100 - idle percentage.
+ *
+ * Generated from protobuf field float utilized_percentage = 1;
+ * @param float $var
+ * @return $this
+ */
+ public function setUtilizedPercentage($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->utilized_percentage = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateGroupRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateGroupRequest.php
new file mode 100644
index 000000000000..eaae81c59883
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateGroupRequest.php
@@ -0,0 +1,257 @@
+google.cloud.migrationcenter.v1.CreateGroupRequest
+ */
+class CreateGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. User specified ID for the group. It will become the last
+ * component of the group name. The ID must be unique within the project, must
+ * conform with RFC-1034, is restricted to lower-cased letters, and has a
+ * maximum length of 63 characters. The ID must match the regular expression:
+ * `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.
+ *
+ * Generated from protobuf field string group_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $group_id = '';
+ /**
+ * Required. The group resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Group group = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $group = null;
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $parent Required. Value for parent. Please see
+ * {@see MigrationCenterClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\MigrationCenter\V1\Group $group Required. The group resource being created.
+ * @param string $groupId Required. User specified ID for the group. It will become the last
+ * component of the group name. The ID must be unique within the project, must
+ * conform with RFC-1034, is restricted to lower-cased letters, and has a
+ * maximum length of 63 characters. The ID must match the regular expression:
+ * `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\CreateGroupRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\MigrationCenter\V1\Group $group, string $groupId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setGroup($group)
+ ->setGroupId($groupId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Value for parent.
+ * @type string $group_id
+ * Required. User specified ID for the group. It will become the last
+ * component of the group name. The ID must be unique within the project, must
+ * conform with RFC-1034, is restricted to lower-cased letters, and has a
+ * maximum length of 63 characters. The ID must match the regular expression:
+ * `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.
+ * @type \Google\Cloud\MigrationCenter\V1\Group $group
+ * Required. The group resource being created.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. User specified ID for the group. It will become the last
+ * component of the group name. The ID must be unique within the project, must
+ * conform with RFC-1034, is restricted to lower-cased letters, and has a
+ * maximum length of 63 characters. The ID must match the regular expression:
+ * `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.
+ *
+ * Generated from protobuf field string group_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getGroupId()
+ {
+ return $this->group_id;
+ }
+
+ /**
+ * Required. User specified ID for the group. It will become the last
+ * component of the group name. The ID must be unique within the project, must
+ * conform with RFC-1034, is restricted to lower-cased letters, and has a
+ * maximum length of 63 characters. The ID must match the regular expression:
+ * `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.
+ *
+ * Generated from protobuf field string group_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setGroupId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->group_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The group resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Group group = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\MigrationCenter\V1\Group|null
+ */
+ public function getGroup()
+ {
+ return $this->group;
+ }
+
+ public function hasGroup()
+ {
+ return isset($this->group);
+ }
+
+ public function clearGroup()
+ {
+ unset($this->group);
+ }
+
+ /**
+ * Required. The group resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Group group = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\MigrationCenter\V1\Group $var
+ * @return $this
+ */
+ public function setGroup($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\Group::class);
+ $this->group = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateImportDataFileRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateImportDataFileRequest.php
new file mode 100644
index 000000000000..5f81d9e8f1c3
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateImportDataFileRequest.php
@@ -0,0 +1,237 @@
+google.cloud.migrationcenter.v1.CreateImportDataFileRequest
+ */
+class CreateImportDataFileRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the parent of the ImportDataFile.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the new data file.
+ *
+ * Generated from protobuf field string import_data_file_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $import_data_file_id = '';
+ /**
+ * Required. The resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportDataFile import_data_file = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $import_data_file = null;
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $parent Required. Name of the parent of the ImportDataFile. Please see
+ * {@see MigrationCenterClient::importJobName()} for help formatting this field.
+ * @param \Google\Cloud\MigrationCenter\V1\ImportDataFile $importDataFile Required. The resource being created.
+ * @param string $importDataFileId Required. The ID of the new data file.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\CreateImportDataFileRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\MigrationCenter\V1\ImportDataFile $importDataFile, string $importDataFileId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setImportDataFile($importDataFile)
+ ->setImportDataFileId($importDataFileId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Name of the parent of the ImportDataFile.
+ * @type string $import_data_file_id
+ * Required. The ID of the new data file.
+ * @type \Google\Cloud\MigrationCenter\V1\ImportDataFile $import_data_file
+ * Required. The resource being created.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the parent of the ImportDataFile.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Name of the parent of the ImportDataFile.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The ID of the new data file.
+ *
+ * Generated from protobuf field string import_data_file_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getImportDataFileId()
+ {
+ return $this->import_data_file_id;
+ }
+
+ /**
+ * Required. The ID of the new data file.
+ *
+ * Generated from protobuf field string import_data_file_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setImportDataFileId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->import_data_file_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportDataFile import_data_file = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\MigrationCenter\V1\ImportDataFile|null
+ */
+ public function getImportDataFile()
+ {
+ return $this->import_data_file;
+ }
+
+ public function hasImportDataFile()
+ {
+ return isset($this->import_data_file);
+ }
+
+ public function clearImportDataFile()
+ {
+ unset($this->import_data_file);
+ }
+
+ /**
+ * Required. The resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportDataFile import_data_file = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\MigrationCenter\V1\ImportDataFile $var
+ * @return $this
+ */
+ public function setImportDataFile($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ImportDataFile::class);
+ $this->import_data_file = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateImportJobRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateImportJobRequest.php
new file mode 100644
index 000000000000..0a5e153e5d50
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateImportJobRequest.php
@@ -0,0 +1,237 @@
+google.cloud.migrationcenter.v1.CreateImportJobRequest
+ */
+class CreateImportJobRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. ID of the import job.
+ *
+ * Generated from protobuf field string import_job_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $import_job_id = '';
+ /**
+ * Required. The resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJob import_job = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $import_job = null;
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $parent Required. Value for parent. Please see
+ * {@see MigrationCenterClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\MigrationCenter\V1\ImportJob $importJob Required. The resource being created.
+ * @param string $importJobId Required. ID of the import job.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\CreateImportJobRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\MigrationCenter\V1\ImportJob $importJob, string $importJobId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setImportJob($importJob)
+ ->setImportJobId($importJobId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Value for parent.
+ * @type string $import_job_id
+ * Required. ID of the import job.
+ * @type \Google\Cloud\MigrationCenter\V1\ImportJob $import_job
+ * Required. The resource being created.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. ID of the import job.
+ *
+ * Generated from protobuf field string import_job_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getImportJobId()
+ {
+ return $this->import_job_id;
+ }
+
+ /**
+ * Required. ID of the import job.
+ *
+ * Generated from protobuf field string import_job_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setImportJobId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->import_job_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJob import_job = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\MigrationCenter\V1\ImportJob|null
+ */
+ public function getImportJob()
+ {
+ return $this->import_job;
+ }
+
+ public function hasImportJob()
+ {
+ return isset($this->import_job);
+ }
+
+ public function clearImportJob()
+ {
+ unset($this->import_job);
+ }
+
+ /**
+ * Required. The resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJob import_job = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\MigrationCenter\V1\ImportJob $var
+ * @return $this
+ */
+ public function setImportJob($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ImportJob::class);
+ $this->import_job = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreatePreferenceSetRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreatePreferenceSetRequest.php
new file mode 100644
index 000000000000..c972bae0ecc1
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreatePreferenceSetRequest.php
@@ -0,0 +1,262 @@
+google.cloud.migrationcenter.v1.CreatePreferenceSetRequest
+ */
+class CreatePreferenceSetRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. User specified ID for the preference set. It will become the last
+ * component of the preference set name. The ID must be unique within the
+ * project, must conform with RFC-1034, is restricted to lower-cased letters,
+ * and has a maximum length of 63 characters. The ID must match the regular
+ * expression
+ * `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.
+ *
+ * Generated from protobuf field string preference_set_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $preference_set_id = '';
+ /**
+ * Required. The preference set resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.PreferenceSet preference_set = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $preference_set = null;
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $parent Required. Value for parent. Please see
+ * {@see MigrationCenterClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\MigrationCenter\V1\PreferenceSet $preferenceSet Required. The preference set resource being created.
+ * @param string $preferenceSetId Required. User specified ID for the preference set. It will become the last
+ * component of the preference set name. The ID must be unique within the
+ * project, must conform with RFC-1034, is restricted to lower-cased letters,
+ * and has a maximum length of 63 characters. The ID must match the regular
+ * expression
+ * `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\CreatePreferenceSetRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\MigrationCenter\V1\PreferenceSet $preferenceSet, string $preferenceSetId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setPreferenceSet($preferenceSet)
+ ->setPreferenceSetId($preferenceSetId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Value for parent.
+ * @type string $preference_set_id
+ * Required. User specified ID for the preference set. It will become the last
+ * component of the preference set name. The ID must be unique within the
+ * project, must conform with RFC-1034, is restricted to lower-cased letters,
+ * and has a maximum length of 63 characters. The ID must match the regular
+ * expression
+ * `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.
+ * @type \Google\Cloud\MigrationCenter\V1\PreferenceSet $preference_set
+ * Required. The preference set resource being created.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. User specified ID for the preference set. It will become the last
+ * component of the preference set name. The ID must be unique within the
+ * project, must conform with RFC-1034, is restricted to lower-cased letters,
+ * and has a maximum length of 63 characters. The ID must match the regular
+ * expression
+ * `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.
+ *
+ * Generated from protobuf field string preference_set_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getPreferenceSetId()
+ {
+ return $this->preference_set_id;
+ }
+
+ /**
+ * Required. User specified ID for the preference set. It will become the last
+ * component of the preference set name. The ID must be unique within the
+ * project, must conform with RFC-1034, is restricted to lower-cased letters,
+ * and has a maximum length of 63 characters. The ID must match the regular
+ * expression
+ * `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.
+ *
+ * Generated from protobuf field string preference_set_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setPreferenceSetId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->preference_set_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The preference set resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.PreferenceSet preference_set = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\MigrationCenter\V1\PreferenceSet|null
+ */
+ public function getPreferenceSet()
+ {
+ return $this->preference_set;
+ }
+
+ public function hasPreferenceSet()
+ {
+ return isset($this->preference_set);
+ }
+
+ public function clearPreferenceSet()
+ {
+ unset($this->preference_set);
+ }
+
+ /**
+ * Required. The preference set resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.PreferenceSet preference_set = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\MigrationCenter\V1\PreferenceSet $var
+ * @return $this
+ */
+ public function setPreferenceSet($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\PreferenceSet::class);
+ $this->preference_set = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateReportConfigRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateReportConfigRequest.php
new file mode 100644
index 000000000000..7f7d7dbf97db
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateReportConfigRequest.php
@@ -0,0 +1,257 @@
+google.cloud.migrationcenter.v1.CreateReportConfigRequest
+ */
+class CreateReportConfigRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. User specified ID for the report config. It will become the last
+ * component of the report config name. The ID must be unique within the
+ * project, must conform with RFC-1034, is restricted to lower-cased letters,
+ * and has a maximum length of 63 characters. The ID must match the regular
+ * expression: [a-z]([a-z0-9-]{0,61}[a-z0-9])?.
+ *
+ * Generated from protobuf field string report_config_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $report_config_id = '';
+ /**
+ * Required. The report config set resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportConfig report_config = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $report_config = null;
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $parent Required. Value for parent. Please see
+ * {@see MigrationCenterClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\MigrationCenter\V1\ReportConfig $reportConfig Required. The report config set resource being created.
+ * @param string $reportConfigId Required. User specified ID for the report config. It will become the last
+ * component of the report config name. The ID must be unique within the
+ * project, must conform with RFC-1034, is restricted to lower-cased letters,
+ * and has a maximum length of 63 characters. The ID must match the regular
+ * expression: [a-z]([a-z0-9-]{0,61}[a-z0-9])?.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\CreateReportConfigRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\MigrationCenter\V1\ReportConfig $reportConfig, string $reportConfigId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setReportConfig($reportConfig)
+ ->setReportConfigId($reportConfigId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Value for parent.
+ * @type string $report_config_id
+ * Required. User specified ID for the report config. It will become the last
+ * component of the report config name. The ID must be unique within the
+ * project, must conform with RFC-1034, is restricted to lower-cased letters,
+ * and has a maximum length of 63 characters. The ID must match the regular
+ * expression: [a-z]([a-z0-9-]{0,61}[a-z0-9])?.
+ * @type \Google\Cloud\MigrationCenter\V1\ReportConfig $report_config
+ * Required. The report config set resource being created.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. User specified ID for the report config. It will become the last
+ * component of the report config name. The ID must be unique within the
+ * project, must conform with RFC-1034, is restricted to lower-cased letters,
+ * and has a maximum length of 63 characters. The ID must match the regular
+ * expression: [a-z]([a-z0-9-]{0,61}[a-z0-9])?.
+ *
+ * Generated from protobuf field string report_config_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getReportConfigId()
+ {
+ return $this->report_config_id;
+ }
+
+ /**
+ * Required. User specified ID for the report config. It will become the last
+ * component of the report config name. The ID must be unique within the
+ * project, must conform with RFC-1034, is restricted to lower-cased letters,
+ * and has a maximum length of 63 characters. The ID must match the regular
+ * expression: [a-z]([a-z0-9-]{0,61}[a-z0-9])?.
+ *
+ * Generated from protobuf field string report_config_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setReportConfigId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->report_config_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The report config set resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportConfig report_config = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\MigrationCenter\V1\ReportConfig|null
+ */
+ public function getReportConfig()
+ {
+ return $this->report_config;
+ }
+
+ public function hasReportConfig()
+ {
+ return isset($this->report_config);
+ }
+
+ public function clearReportConfig()
+ {
+ unset($this->report_config);
+ }
+
+ /**
+ * Required. The report config set resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportConfig report_config = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\MigrationCenter\V1\ReportConfig $var
+ * @return $this
+ */
+ public function setReportConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ReportConfig::class);
+ $this->report_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateReportRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateReportRequest.php
new file mode 100644
index 000000000000..203eeb2ced47
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateReportRequest.php
@@ -0,0 +1,257 @@
+google.cloud.migrationcenter.v1.CreateReportRequest
+ */
+class CreateReportRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. User specified id for the report. It will become the last
+ * component of the report name. The id must be unique within the project,
+ * must conform with RFC-1034, is restricted to lower-cased letters, and has a
+ * maximum length of 63 characters. The id must match the regular expression:
+ * [a-z]([a-z0-9-]{0,61}[a-z0-9])?.
+ *
+ * Generated from protobuf field string report_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $report_id = '';
+ /**
+ * Required. The report resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Report report = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $report = null;
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $parent Required. Value for parent. Please see
+ * {@see MigrationCenterClient::reportConfigName()} for help formatting this field.
+ * @param \Google\Cloud\MigrationCenter\V1\Report $report Required. The report resource being created.
+ * @param string $reportId Required. User specified id for the report. It will become the last
+ * component of the report name. The id must be unique within the project,
+ * must conform with RFC-1034, is restricted to lower-cased letters, and has a
+ * maximum length of 63 characters. The id must match the regular expression:
+ * [a-z]([a-z0-9-]{0,61}[a-z0-9])?.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\CreateReportRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\MigrationCenter\V1\Report $report, string $reportId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setReport($report)
+ ->setReportId($reportId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Value for parent.
+ * @type string $report_id
+ * Required. User specified id for the report. It will become the last
+ * component of the report name. The id must be unique within the project,
+ * must conform with RFC-1034, is restricted to lower-cased letters, and has a
+ * maximum length of 63 characters. The id must match the regular expression:
+ * [a-z]([a-z0-9-]{0,61}[a-z0-9])?.
+ * @type \Google\Cloud\MigrationCenter\V1\Report $report
+ * Required. The report resource being created.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. User specified id for the report. It will become the last
+ * component of the report name. The id must be unique within the project,
+ * must conform with RFC-1034, is restricted to lower-cased letters, and has a
+ * maximum length of 63 characters. The id must match the regular expression:
+ * [a-z]([a-z0-9-]{0,61}[a-z0-9])?.
+ *
+ * Generated from protobuf field string report_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getReportId()
+ {
+ return $this->report_id;
+ }
+
+ /**
+ * Required. User specified id for the report. It will become the last
+ * component of the report name. The id must be unique within the project,
+ * must conform with RFC-1034, is restricted to lower-cased letters, and has a
+ * maximum length of 63 characters. The id must match the regular expression:
+ * [a-z]([a-z0-9-]{0,61}[a-z0-9])?.
+ *
+ * Generated from protobuf field string report_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setReportId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->report_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The report resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Report report = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\MigrationCenter\V1\Report|null
+ */
+ public function getReport()
+ {
+ return $this->report;
+ }
+
+ public function hasReport()
+ {
+ return isset($this->report);
+ }
+
+ public function clearReport()
+ {
+ unset($this->report);
+ }
+
+ /**
+ * Required. The report resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Report report = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\MigrationCenter\V1\Report $var
+ * @return $this
+ */
+ public function setReport($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\Report::class);
+ $this->report = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateSourceRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateSourceRequest.php
new file mode 100644
index 000000000000..0b0e144c6a00
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/CreateSourceRequest.php
@@ -0,0 +1,257 @@
+google.cloud.migrationcenter.v1.CreateSourceRequest
+ */
+class CreateSourceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. User specified ID for the source. It will become the last
+ * component of the source name. The ID must be unique within the project,
+ * must conform with RFC-1034, is restricted to lower-cased letters, and has a
+ * maximum length of 63 characters. The ID must match the regular expression:
+ * `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.
+ *
+ * Generated from protobuf field string source_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $source_id = '';
+ /**
+ * Required. The resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Source source = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $source = null;
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $parent Required. Value for parent. Please see
+ * {@see MigrationCenterClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\MigrationCenter\V1\Source $source Required. The resource being created.
+ * @param string $sourceId Required. User specified ID for the source. It will become the last
+ * component of the source name. The ID must be unique within the project,
+ * must conform with RFC-1034, is restricted to lower-cased letters, and has a
+ * maximum length of 63 characters. The ID must match the regular expression:
+ * `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\CreateSourceRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\MigrationCenter\V1\Source $source, string $sourceId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setSource($source)
+ ->setSourceId($sourceId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Value for parent.
+ * @type string $source_id
+ * Required. User specified ID for the source. It will become the last
+ * component of the source name. The ID must be unique within the project,
+ * must conform with RFC-1034, is restricted to lower-cased letters, and has a
+ * maximum length of 63 characters. The ID must match the regular expression:
+ * `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.
+ * @type \Google\Cloud\MigrationCenter\V1\Source $source
+ * Required. The resource being created.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. User specified ID for the source. It will become the last
+ * component of the source name. The ID must be unique within the project,
+ * must conform with RFC-1034, is restricted to lower-cased letters, and has a
+ * maximum length of 63 characters. The ID must match the regular expression:
+ * `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.
+ *
+ * Generated from protobuf field string source_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getSourceId()
+ {
+ return $this->source_id;
+ }
+
+ /**
+ * Required. User specified ID for the source. It will become the last
+ * component of the source name. The ID must be unique within the project,
+ * must conform with RFC-1034, is restricted to lower-cased letters, and has a
+ * maximum length of 63 characters. The ID must match the regular expression:
+ * `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.
+ *
+ * Generated from protobuf field string source_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setSourceId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->source_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Source source = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\MigrationCenter\V1\Source|null
+ */
+ public function getSource()
+ {
+ return $this->source;
+ }
+
+ public function hasSource()
+ {
+ return isset($this->source);
+ }
+
+ public function clearSource()
+ {
+ unset($this->source);
+ }
+
+ /**
+ * Required. The resource being created.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Source source = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\MigrationCenter\V1\Source $var
+ * @return $this
+ */
+ public function setSource($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\Source::class);
+ $this->source = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation.php
new file mode 100644
index 000000000000..cb5cc1ead3de
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation.php
@@ -0,0 +1,253 @@
+google.cloud.migrationcenter.v1.DailyResourceUsageAggregation
+ */
+class DailyResourceUsageAggregation extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Aggregation date. Day boundaries are at midnight UTC.
+ *
+ * Generated from protobuf field .google.type.Date date = 1;
+ */
+ protected $date = null;
+ /**
+ * CPU usage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.CPU cpu = 2;
+ */
+ protected $cpu = null;
+ /**
+ * Memory usage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Memory memory = 3;
+ */
+ protected $memory = null;
+ /**
+ * Network usage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Network network = 4;
+ */
+ protected $network = null;
+ /**
+ * Disk usage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Disk disk = 5;
+ */
+ protected $disk = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Type\Date $date
+ * Aggregation date. Day boundaries are at midnight UTC.
+ * @type \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\CPU $cpu
+ * CPU usage.
+ * @type \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Memory $memory
+ * Memory usage.
+ * @type \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Network $network
+ * Network usage.
+ * @type \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Disk $disk
+ * Disk usage.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Aggregation date. Day boundaries are at midnight UTC.
+ *
+ * Generated from protobuf field .google.type.Date date = 1;
+ * @return \Google\Type\Date|null
+ */
+ public function getDate()
+ {
+ return $this->date;
+ }
+
+ public function hasDate()
+ {
+ return isset($this->date);
+ }
+
+ public function clearDate()
+ {
+ unset($this->date);
+ }
+
+ /**
+ * Aggregation date. Day boundaries are at midnight UTC.
+ *
+ * Generated from protobuf field .google.type.Date date = 1;
+ * @param \Google\Type\Date $var
+ * @return $this
+ */
+ public function setDate($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Date::class);
+ $this->date = $var;
+
+ return $this;
+ }
+
+ /**
+ * CPU usage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.CPU cpu = 2;
+ * @return \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\CPU|null
+ */
+ public function getCpu()
+ {
+ return $this->cpu;
+ }
+
+ public function hasCpu()
+ {
+ return isset($this->cpu);
+ }
+
+ public function clearCpu()
+ {
+ unset($this->cpu);
+ }
+
+ /**
+ * CPU usage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.CPU cpu = 2;
+ * @param \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\CPU $var
+ * @return $this
+ */
+ public function setCpu($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\CPU::class);
+ $this->cpu = $var;
+
+ return $this;
+ }
+
+ /**
+ * Memory usage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Memory memory = 3;
+ * @return \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Memory|null
+ */
+ public function getMemory()
+ {
+ return $this->memory;
+ }
+
+ public function hasMemory()
+ {
+ return isset($this->memory);
+ }
+
+ public function clearMemory()
+ {
+ unset($this->memory);
+ }
+
+ /**
+ * Memory usage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Memory memory = 3;
+ * @param \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Memory $var
+ * @return $this
+ */
+ public function setMemory($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Memory::class);
+ $this->memory = $var;
+
+ return $this;
+ }
+
+ /**
+ * Network usage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Network network = 4;
+ * @return \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Network|null
+ */
+ public function getNetwork()
+ {
+ return $this->network;
+ }
+
+ public function hasNetwork()
+ {
+ return isset($this->network);
+ }
+
+ public function clearNetwork()
+ {
+ unset($this->network);
+ }
+
+ /**
+ * Network usage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Network network = 4;
+ * @param \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Network $var
+ * @return $this
+ */
+ public function setNetwork($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Network::class);
+ $this->network = $var;
+
+ return $this;
+ }
+
+ /**
+ * Disk usage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Disk disk = 5;
+ * @return \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Disk|null
+ */
+ public function getDisk()
+ {
+ return $this->disk;
+ }
+
+ public function hasDisk()
+ {
+ return isset($this->disk);
+ }
+
+ public function clearDisk()
+ {
+ unset($this->disk);
+ }
+
+ /**
+ * Disk usage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Disk disk = 5;
+ * @param \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Disk $var
+ * @return $this
+ */
+ public function setDisk($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Disk::class);
+ $this->disk = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation/CPU.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation/CPU.php
new file mode 100644
index 000000000000..3d47f260cf30
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation/CPU.php
@@ -0,0 +1,80 @@
+google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.CPU
+ */
+class CPU extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * CPU utilization percentage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Stats utilization_percentage = 1;
+ */
+ protected $utilization_percentage = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats $utilization_percentage
+ * CPU utilization percentage.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * CPU utilization percentage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Stats utilization_percentage = 1;
+ * @return \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats|null
+ */
+ public function getUtilizationPercentage()
+ {
+ return $this->utilization_percentage;
+ }
+
+ public function hasUtilizationPercentage()
+ {
+ return isset($this->utilization_percentage);
+ }
+
+ public function clearUtilizationPercentage()
+ {
+ unset($this->utilization_percentage);
+ }
+
+ /**
+ * CPU utilization percentage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Stats utilization_percentage = 1;
+ * @param \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats $var
+ * @return $this
+ */
+ public function setUtilizationPercentage($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats::class);
+ $this->utilization_percentage = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CPU::class, \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation_CPU::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation/Disk.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation/Disk.php
new file mode 100644
index 000000000000..6a18aa1ea7ab
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation/Disk.php
@@ -0,0 +1,80 @@
+google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Disk
+ */
+class Disk extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Disk I/O operations per second.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Stats iops = 1;
+ */
+ protected $iops = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats $iops
+ * Disk I/O operations per second.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Disk I/O operations per second.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Stats iops = 1;
+ * @return \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats|null
+ */
+ public function getIops()
+ {
+ return $this->iops;
+ }
+
+ public function hasIops()
+ {
+ return isset($this->iops);
+ }
+
+ public function clearIops()
+ {
+ unset($this->iops);
+ }
+
+ /**
+ * Disk I/O operations per second.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Stats iops = 1;
+ * @param \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats $var
+ * @return $this
+ */
+ public function setIops($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats::class);
+ $this->iops = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Disk::class, \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation_Disk::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation/Memory.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation/Memory.php
new file mode 100644
index 000000000000..efc89f8fa29a
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation/Memory.php
@@ -0,0 +1,80 @@
+google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Memory
+ */
+class Memory extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Memory utilization percentage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Stats utilization_percentage = 1;
+ */
+ protected $utilization_percentage = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats $utilization_percentage
+ * Memory utilization percentage.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Memory utilization percentage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Stats utilization_percentage = 1;
+ * @return \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats|null
+ */
+ public function getUtilizationPercentage()
+ {
+ return $this->utilization_percentage;
+ }
+
+ public function hasUtilizationPercentage()
+ {
+ return isset($this->utilization_percentage);
+ }
+
+ public function clearUtilizationPercentage()
+ {
+ unset($this->utilization_percentage);
+ }
+
+ /**
+ * Memory utilization percentage.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Stats utilization_percentage = 1;
+ * @param \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats $var
+ * @return $this
+ */
+ public function setUtilizationPercentage($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats::class);
+ $this->utilization_percentage = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Memory::class, \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation_Memory::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation/Network.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation/Network.php
new file mode 100644
index 000000000000..1861848fd408
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation/Network.php
@@ -0,0 +1,124 @@
+google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Network
+ */
+class Network extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Network ingress in B/s.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Stats ingress_bps = 1;
+ */
+ protected $ingress_bps = null;
+ /**
+ * Network egress in B/s.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Stats egress_bps = 2;
+ */
+ protected $egress_bps = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats $ingress_bps
+ * Network ingress in B/s.
+ * @type \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats $egress_bps
+ * Network egress in B/s.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Network ingress in B/s.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Stats ingress_bps = 1;
+ * @return \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats|null
+ */
+ public function getIngressBps()
+ {
+ return $this->ingress_bps;
+ }
+
+ public function hasIngressBps()
+ {
+ return isset($this->ingress_bps);
+ }
+
+ public function clearIngressBps()
+ {
+ unset($this->ingress_bps);
+ }
+
+ /**
+ * Network ingress in B/s.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Stats ingress_bps = 1;
+ * @param \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats $var
+ * @return $this
+ */
+ public function setIngressBps($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats::class);
+ $this->ingress_bps = $var;
+
+ return $this;
+ }
+
+ /**
+ * Network egress in B/s.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Stats egress_bps = 2;
+ * @return \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats|null
+ */
+ public function getEgressBps()
+ {
+ return $this->egress_bps;
+ }
+
+ public function hasEgressBps()
+ {
+ return isset($this->egress_bps);
+ }
+
+ public function clearEgressBps()
+ {
+ unset($this->egress_bps);
+ }
+
+ /**
+ * Network egress in B/s.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Stats egress_bps = 2;
+ * @param \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats $var
+ * @return $this
+ */
+ public function setEgressBps($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation\Stats::class);
+ $this->egress_bps = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Network::class, \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation_Network::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation/Stats.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation/Stats.php
new file mode 100644
index 000000000000..c51d20e780d6
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DailyResourceUsageAggregation/Stats.php
@@ -0,0 +1,172 @@
+google.cloud.migrationcenter.v1.DailyResourceUsageAggregation.Stats
+ */
+class Stats extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Average usage value.
+ *
+ * Generated from protobuf field float average = 1;
+ */
+ protected $average = 0.0;
+ /**
+ * Median usage value.
+ *
+ * Generated from protobuf field float median = 2;
+ */
+ protected $median = 0.0;
+ /**
+ * 95th percentile usage value.
+ *
+ * Generated from protobuf field float nintey_fifth_percentile = 3;
+ */
+ protected $nintey_fifth_percentile = 0.0;
+ /**
+ * Peak usage value.
+ *
+ * Generated from protobuf field float peak = 4;
+ */
+ protected $peak = 0.0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type float $average
+ * Average usage value.
+ * @type float $median
+ * Median usage value.
+ * @type float $nintey_fifth_percentile
+ * 95th percentile usage value.
+ * @type float $peak
+ * Peak usage value.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Average usage value.
+ *
+ * Generated from protobuf field float average = 1;
+ * @return float
+ */
+ public function getAverage()
+ {
+ return $this->average;
+ }
+
+ /**
+ * Average usage value.
+ *
+ * Generated from protobuf field float average = 1;
+ * @param float $var
+ * @return $this
+ */
+ public function setAverage($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->average = $var;
+
+ return $this;
+ }
+
+ /**
+ * Median usage value.
+ *
+ * Generated from protobuf field float median = 2;
+ * @return float
+ */
+ public function getMedian()
+ {
+ return $this->median;
+ }
+
+ /**
+ * Median usage value.
+ *
+ * Generated from protobuf field float median = 2;
+ * @param float $var
+ * @return $this
+ */
+ public function setMedian($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->median = $var;
+
+ return $this;
+ }
+
+ /**
+ * 95th percentile usage value.
+ *
+ * Generated from protobuf field float nintey_fifth_percentile = 3;
+ * @return float
+ */
+ public function getNinteyFifthPercentile()
+ {
+ return $this->nintey_fifth_percentile;
+ }
+
+ /**
+ * 95th percentile usage value.
+ *
+ * Generated from protobuf field float nintey_fifth_percentile = 3;
+ * @param float $var
+ * @return $this
+ */
+ public function setNinteyFifthPercentile($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->nintey_fifth_percentile = $var;
+
+ return $this;
+ }
+
+ /**
+ * Peak usage value.
+ *
+ * Generated from protobuf field float peak = 4;
+ * @return float
+ */
+ public function getPeak()
+ {
+ return $this->peak;
+ }
+
+ /**
+ * Peak usage value.
+ *
+ * Generated from protobuf field float peak = 4;
+ * @param float $var
+ * @return $this
+ */
+ public function setPeak($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->peak = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Stats::class, \Google\Cloud\MigrationCenter\V1\DailyResourceUsageAggregation_Stats::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteAssetRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteAssetRequest.php
new file mode 100644
index 000000000000..bf316eb295cd
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteAssetRequest.php
@@ -0,0 +1,155 @@
+google.cloud.migrationcenter.v1.DeleteAssetRequest
+ */
+class DeleteAssetRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $name Required. Name of the resource. Please see
+ * {@see MigrationCenterClient::assetName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\DeleteAssetRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteGroupRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteGroupRequest.php
new file mode 100644
index 000000000000..e4ef8cb44d70
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteGroupRequest.php
@@ -0,0 +1,155 @@
+google.cloud.migrationcenter.v1.DeleteGroupRequest
+ */
+class DeleteGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the group resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $name Required. Name of the group resource. Please see
+ * {@see MigrationCenterClient::groupName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\DeleteGroupRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the group resource.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the group resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the group resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteImportDataFileRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteImportDataFileRequest.php
new file mode 100644
index 000000000000..57bcb180d47f
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteImportDataFileRequest.php
@@ -0,0 +1,155 @@
+google.cloud.migrationcenter.v1.DeleteImportDataFileRequest
+ */
+class DeleteImportDataFileRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the ImportDataFile to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $name Required. Name of the ImportDataFile to delete. Please see
+ * {@see MigrationCenterClient::importDataFileName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\DeleteImportDataFileRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the ImportDataFile to delete.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the ImportDataFile to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the ImportDataFile to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteImportJobRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteImportJobRequest.php
new file mode 100644
index 000000000000..3d581d7757c1
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteImportJobRequest.php
@@ -0,0 +1,197 @@
+google.cloud.migrationcenter.v1.DeleteImportJobRequest
+ */
+class DeleteImportJobRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+ /**
+ * Optional. If set to `true`, any `ImportDataFiles` of this job will also be
+ * deleted If set to `false`, the request only works if the job has no data
+ * files.
+ *
+ * Generated from protobuf field bool force = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $force = false;
+
+ /**
+ * @param string $name Required. Name of the resource. Please see
+ * {@see MigrationCenterClient::importJobName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\DeleteImportJobRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * @type bool $force
+ * Optional. If set to `true`, any `ImportDataFiles` of this job will also be
+ * deleted If set to `false`, the request only works if the job has no data
+ * files.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. If set to `true`, any `ImportDataFiles` of this job will also be
+ * deleted If set to `false`, the request only works if the job has no data
+ * files.
+ *
+ * Generated from protobuf field bool force = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getForce()
+ {
+ return $this->force;
+ }
+
+ /**
+ * Optional. If set to `true`, any `ImportDataFiles` of this job will also be
+ * deleted If set to `false`, the request only works if the job has no data
+ * files.
+ *
+ * Generated from protobuf field bool force = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setForce($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->force = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeletePreferenceSetRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeletePreferenceSetRequest.php
new file mode 100644
index 000000000000..dfdac0be8cbe
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeletePreferenceSetRequest.php
@@ -0,0 +1,155 @@
+google.cloud.migrationcenter.v1.DeletePreferenceSetRequest
+ */
+class DeletePreferenceSetRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the group resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $name Required. Name of the group resource. Please see
+ * {@see MigrationCenterClient::preferenceSetName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\DeletePreferenceSetRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the group resource.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the group resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the group resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteReportConfigRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteReportConfigRequest.php
new file mode 100644
index 000000000000..dc84aa089a70
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteReportConfigRequest.php
@@ -0,0 +1,197 @@
+google.cloud.migrationcenter.v1.DeleteReportConfigRequest
+ */
+class DeleteReportConfigRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+ /**
+ * Optional. If set to `true`, any child `Reports` of this entity will also be
+ * deleted. If set to `false`, the request only works if the resource has no
+ * children.
+ *
+ * Generated from protobuf field bool force = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $force = false;
+
+ /**
+ * @param string $name Required. Name of the resource. Please see
+ * {@see MigrationCenterClient::reportConfigName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\DeleteReportConfigRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * @type bool $force
+ * Optional. If set to `true`, any child `Reports` of this entity will also be
+ * deleted. If set to `false`, the request only works if the resource has no
+ * children.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. If set to `true`, any child `Reports` of this entity will also be
+ * deleted. If set to `false`, the request only works if the resource has no
+ * children.
+ *
+ * Generated from protobuf field bool force = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getForce()
+ {
+ return $this->force;
+ }
+
+ /**
+ * Optional. If set to `true`, any child `Reports` of this entity will also be
+ * deleted. If set to `false`, the request only works if the resource has no
+ * children.
+ *
+ * Generated from protobuf field bool force = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setForce($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->force = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteReportRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteReportRequest.php
new file mode 100644
index 000000000000..a65423b390c1
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteReportRequest.php
@@ -0,0 +1,155 @@
+google.cloud.migrationcenter.v1.DeleteReportRequest
+ */
+class DeleteReportRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $name Required. Name of the resource. Please see
+ * {@see MigrationCenterClient::reportName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\DeleteReportRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteSourceRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteSourceRequest.php
new file mode 100644
index 000000000000..13b36660f9b3
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DeleteSourceRequest.php
@@ -0,0 +1,155 @@
+google.cloud.migrationcenter.v1.DeleteSourceRequest
+ */
+class DeleteSourceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $name Required. Name of the resource. Please see
+ * {@see MigrationCenterClient::sourceName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\DeleteSourceRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskEntry.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskEntry.php
new file mode 100644
index 000000000000..4a10c0ae7a15
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskEntry.php
@@ -0,0 +1,323 @@
+google.cloud.migrationcenter.v1.DiskEntry
+ */
+class DiskEntry extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Disk capacity.
+ *
+ * Generated from protobuf field int64 capacity_bytes = 1;
+ */
+ protected $capacity_bytes = 0;
+ /**
+ * Disk free space.
+ *
+ * Generated from protobuf field int64 free_bytes = 2;
+ */
+ protected $free_bytes = 0;
+ /**
+ * Disk label.
+ *
+ * Generated from protobuf field string disk_label = 3;
+ */
+ protected $disk_label = '';
+ /**
+ * Disk label type (e.g. BIOS/GPT)
+ *
+ * Generated from protobuf field string disk_label_type = 4;
+ */
+ protected $disk_label_type = '';
+ /**
+ * Disks interface type.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DiskEntry.InterfaceType interface_type = 5;
+ */
+ protected $interface_type = 0;
+ /**
+ * Partition layout.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DiskPartitionList partitions = 6;
+ */
+ protected $partitions = null;
+ /**
+ * Disk hardware address (e.g. 0:1 for SCSI).
+ *
+ * Generated from protobuf field string hw_address = 7;
+ */
+ protected $hw_address = '';
+ protected $platform_specific;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $capacity_bytes
+ * Disk capacity.
+ * @type int|string $free_bytes
+ * Disk free space.
+ * @type string $disk_label
+ * Disk label.
+ * @type string $disk_label_type
+ * Disk label type (e.g. BIOS/GPT)
+ * @type int $interface_type
+ * Disks interface type.
+ * @type \Google\Cloud\MigrationCenter\V1\DiskPartitionList $partitions
+ * Partition layout.
+ * @type string $hw_address
+ * Disk hardware address (e.g. 0:1 for SCSI).
+ * @type \Google\Cloud\MigrationCenter\V1\VmwareDiskConfig $vmware
+ * VMware disk details.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Disk capacity.
+ *
+ * Generated from protobuf field int64 capacity_bytes = 1;
+ * @return int|string
+ */
+ public function getCapacityBytes()
+ {
+ return $this->capacity_bytes;
+ }
+
+ /**
+ * Disk capacity.
+ *
+ * Generated from protobuf field int64 capacity_bytes = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setCapacityBytes($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->capacity_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Disk free space.
+ *
+ * Generated from protobuf field int64 free_bytes = 2;
+ * @return int|string
+ */
+ public function getFreeBytes()
+ {
+ return $this->free_bytes;
+ }
+
+ /**
+ * Disk free space.
+ *
+ * Generated from protobuf field int64 free_bytes = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setFreeBytes($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->free_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Disk label.
+ *
+ * Generated from protobuf field string disk_label = 3;
+ * @return string
+ */
+ public function getDiskLabel()
+ {
+ return $this->disk_label;
+ }
+
+ /**
+ * Disk label.
+ *
+ * Generated from protobuf field string disk_label = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setDiskLabel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->disk_label = $var;
+
+ return $this;
+ }
+
+ /**
+ * Disk label type (e.g. BIOS/GPT)
+ *
+ * Generated from protobuf field string disk_label_type = 4;
+ * @return string
+ */
+ public function getDiskLabelType()
+ {
+ return $this->disk_label_type;
+ }
+
+ /**
+ * Disk label type (e.g. BIOS/GPT)
+ *
+ * Generated from protobuf field string disk_label_type = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setDiskLabelType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->disk_label_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Disks interface type.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DiskEntry.InterfaceType interface_type = 5;
+ * @return int
+ */
+ public function getInterfaceType()
+ {
+ return $this->interface_type;
+ }
+
+ /**
+ * Disks interface type.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DiskEntry.InterfaceType interface_type = 5;
+ * @param int $var
+ * @return $this
+ */
+ public function setInterfaceType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\DiskEntry\InterfaceType::class);
+ $this->interface_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Partition layout.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DiskPartitionList partitions = 6;
+ * @return \Google\Cloud\MigrationCenter\V1\DiskPartitionList|null
+ */
+ public function getPartitions()
+ {
+ return $this->partitions;
+ }
+
+ public function hasPartitions()
+ {
+ return isset($this->partitions);
+ }
+
+ public function clearPartitions()
+ {
+ unset($this->partitions);
+ }
+
+ /**
+ * Partition layout.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DiskPartitionList partitions = 6;
+ * @param \Google\Cloud\MigrationCenter\V1\DiskPartitionList $var
+ * @return $this
+ */
+ public function setPartitions($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\DiskPartitionList::class);
+ $this->partitions = $var;
+
+ return $this;
+ }
+
+ /**
+ * Disk hardware address (e.g. 0:1 for SCSI).
+ *
+ * Generated from protobuf field string hw_address = 7;
+ * @return string
+ */
+ public function getHwAddress()
+ {
+ return $this->hw_address;
+ }
+
+ /**
+ * Disk hardware address (e.g. 0:1 for SCSI).
+ *
+ * Generated from protobuf field string hw_address = 7;
+ * @param string $var
+ * @return $this
+ */
+ public function setHwAddress($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->hw_address = $var;
+
+ return $this;
+ }
+
+ /**
+ * VMware disk details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareDiskConfig vmware = 20;
+ * @return \Google\Cloud\MigrationCenter\V1\VmwareDiskConfig|null
+ */
+ public function getVmware()
+ {
+ return $this->readOneof(20);
+ }
+
+ public function hasVmware()
+ {
+ return $this->hasOneof(20);
+ }
+
+ /**
+ * VMware disk details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareDiskConfig vmware = 20;
+ * @param \Google\Cloud\MigrationCenter\V1\VmwareDiskConfig $var
+ * @return $this
+ */
+ public function setVmware($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\VmwareDiskConfig::class);
+ $this->writeOneof(20, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getPlatformSpecific()
+ {
+ return $this->whichOneof("platform_specific");
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskEntry/InterfaceType.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskEntry/InterfaceType.php
new file mode 100644
index 000000000000..ffca5a44029e
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskEntry/InterfaceType.php
@@ -0,0 +1,99 @@
+google.cloud.migrationcenter.v1.DiskEntry.InterfaceType
+ */
+class InterfaceType
+{
+ /**
+ * Interface type unknown or unspecified.
+ *
+ * Generated from protobuf enum INTERFACE_TYPE_UNSPECIFIED = 0;
+ */
+ const INTERFACE_TYPE_UNSPECIFIED = 0;
+ /**
+ * IDE interface type.
+ *
+ * Generated from protobuf enum IDE = 1;
+ */
+ const IDE = 1;
+ /**
+ * SATA interface type.
+ *
+ * Generated from protobuf enum SATA = 2;
+ */
+ const SATA = 2;
+ /**
+ * SAS interface type.
+ *
+ * Generated from protobuf enum SAS = 3;
+ */
+ const SAS = 3;
+ /**
+ * SCSI interface type.
+ *
+ * Generated from protobuf enum SCSI = 4;
+ */
+ const SCSI = 4;
+ /**
+ * NVME interface type.
+ *
+ * Generated from protobuf enum NVME = 5;
+ */
+ const NVME = 5;
+ /**
+ * FC interface type.
+ *
+ * Generated from protobuf enum FC = 6;
+ */
+ const FC = 6;
+ /**
+ * iSCSI interface type.
+ *
+ * Generated from protobuf enum ISCSI = 7;
+ */
+ const ISCSI = 7;
+
+ private static $valueToName = [
+ self::INTERFACE_TYPE_UNSPECIFIED => 'INTERFACE_TYPE_UNSPECIFIED',
+ self::IDE => 'IDE',
+ self::SATA => 'SATA',
+ self::SAS => 'SAS',
+ self::SCSI => 'SCSI',
+ self::NVME => 'NVME',
+ self::FC => 'FC',
+ self::ISCSI => 'ISCSI',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(InterfaceType::class, \Google\Cloud\MigrationCenter\V1\DiskEntry_InterfaceType::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskEntryList.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskEntryList.php
new file mode 100644
index 000000000000..bb0f746c0ffa
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskEntryList.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.DiskEntryList
+ */
+class DiskEntryList extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Disk entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.DiskEntry entries = 1;
+ */
+ private $entries;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\DiskEntry>|\Google\Protobuf\Internal\RepeatedField $entries
+ * Disk entries.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Disk entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.DiskEntry entries = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEntries()
+ {
+ return $this->entries;
+ }
+
+ /**
+ * Disk entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.DiskEntry entries = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\DiskEntry>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEntries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\DiskEntry::class);
+ $this->entries = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskPartition.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskPartition.php
new file mode 100644
index 000000000000..c5607c6cc945
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskPartition.php
@@ -0,0 +1,281 @@
+google.cloud.migrationcenter.v1.DiskPartition
+ */
+class DiskPartition extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Partition type.
+ *
+ * Generated from protobuf field string type = 1;
+ */
+ protected $type = '';
+ /**
+ * Partition file system.
+ *
+ * Generated from protobuf field string file_system = 2;
+ */
+ protected $file_system = '';
+ /**
+ * Mount pount (Linux/Windows) or drive letter (Windows).
+ *
+ * Generated from protobuf field string mount_point = 3;
+ */
+ protected $mount_point = '';
+ /**
+ * Partition capacity.
+ *
+ * Generated from protobuf field int64 capacity_bytes = 4;
+ */
+ protected $capacity_bytes = 0;
+ /**
+ * Partition free space.
+ *
+ * Generated from protobuf field int64 free_bytes = 5;
+ */
+ protected $free_bytes = 0;
+ /**
+ * Partition UUID.
+ *
+ * Generated from protobuf field string uuid = 6;
+ */
+ protected $uuid = '';
+ /**
+ * Sub-partitions.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DiskPartitionList sub_partitions = 7;
+ */
+ protected $sub_partitions = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $type
+ * Partition type.
+ * @type string $file_system
+ * Partition file system.
+ * @type string $mount_point
+ * Mount pount (Linux/Windows) or drive letter (Windows).
+ * @type int|string $capacity_bytes
+ * Partition capacity.
+ * @type int|string $free_bytes
+ * Partition free space.
+ * @type string $uuid
+ * Partition UUID.
+ * @type \Google\Cloud\MigrationCenter\V1\DiskPartitionList $sub_partitions
+ * Sub-partitions.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Partition type.
+ *
+ * Generated from protobuf field string type = 1;
+ * @return string
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Partition type.
+ *
+ * Generated from protobuf field string type = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Partition file system.
+ *
+ * Generated from protobuf field string file_system = 2;
+ * @return string
+ */
+ public function getFileSystem()
+ {
+ return $this->file_system;
+ }
+
+ /**
+ * Partition file system.
+ *
+ * Generated from protobuf field string file_system = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setFileSystem($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->file_system = $var;
+
+ return $this;
+ }
+
+ /**
+ * Mount pount (Linux/Windows) or drive letter (Windows).
+ *
+ * Generated from protobuf field string mount_point = 3;
+ * @return string
+ */
+ public function getMountPoint()
+ {
+ return $this->mount_point;
+ }
+
+ /**
+ * Mount pount (Linux/Windows) or drive letter (Windows).
+ *
+ * Generated from protobuf field string mount_point = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setMountPoint($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->mount_point = $var;
+
+ return $this;
+ }
+
+ /**
+ * Partition capacity.
+ *
+ * Generated from protobuf field int64 capacity_bytes = 4;
+ * @return int|string
+ */
+ public function getCapacityBytes()
+ {
+ return $this->capacity_bytes;
+ }
+
+ /**
+ * Partition capacity.
+ *
+ * Generated from protobuf field int64 capacity_bytes = 4;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setCapacityBytes($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->capacity_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Partition free space.
+ *
+ * Generated from protobuf field int64 free_bytes = 5;
+ * @return int|string
+ */
+ public function getFreeBytes()
+ {
+ return $this->free_bytes;
+ }
+
+ /**
+ * Partition free space.
+ *
+ * Generated from protobuf field int64 free_bytes = 5;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setFreeBytes($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->free_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Partition UUID.
+ *
+ * Generated from protobuf field string uuid = 6;
+ * @return string
+ */
+ public function getUuid()
+ {
+ return $this->uuid;
+ }
+
+ /**
+ * Partition UUID.
+ *
+ * Generated from protobuf field string uuid = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setUuid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uuid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sub-partitions.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DiskPartitionList sub_partitions = 7;
+ * @return \Google\Cloud\MigrationCenter\V1\DiskPartitionList|null
+ */
+ public function getSubPartitions()
+ {
+ return $this->sub_partitions;
+ }
+
+ public function hasSubPartitions()
+ {
+ return isset($this->sub_partitions);
+ }
+
+ public function clearSubPartitions()
+ {
+ unset($this->sub_partitions);
+ }
+
+ /**
+ * Sub-partitions.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DiskPartitionList sub_partitions = 7;
+ * @param \Google\Cloud\MigrationCenter\V1\DiskPartitionList $var
+ * @return $this
+ */
+ public function setSubPartitions($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\DiskPartitionList::class);
+ $this->sub_partitions = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskPartitionList.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskPartitionList.php
new file mode 100644
index 000000000000..2970bf370b48
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskPartitionList.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.DiskPartitionList
+ */
+class DiskPartitionList extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Partition entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.DiskPartition entries = 1;
+ */
+ private $entries;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\DiskPartition>|\Google\Protobuf\Internal\RepeatedField $entries
+ * Partition entries.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Partition entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.DiskPartition entries = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEntries()
+ {
+ return $this->entries;
+ }
+
+ /**
+ * Partition entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.DiskPartition entries = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\DiskPartition>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEntries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\DiskPartition::class);
+ $this->entries = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskUsageSample.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskUsageSample.php
new file mode 100644
index 000000000000..41df87337527
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/DiskUsageSample.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.DiskUsageSample
+ */
+class DiskUsageSample extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Average IOPS sampled over a short window. Must be non-negative.
+ *
+ * Generated from protobuf field float average_iops = 1;
+ */
+ protected $average_iops = 0.0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type float $average_iops
+ * Average IOPS sampled over a short window. Must be non-negative.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Average IOPS sampled over a short window. Must be non-negative.
+ *
+ * Generated from protobuf field float average_iops = 1;
+ * @return float
+ */
+ public function getAverageIops()
+ {
+ return $this->average_iops;
+ }
+
+ /**
+ * Average IOPS sampled over a short window. Must be non-negative.
+ *
+ * Generated from protobuf field float average_iops = 1;
+ * @param float $var
+ * @return $this
+ */
+ public function setAverageIops($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->average_iops = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ErrorFrame.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ErrorFrame.php
new file mode 100644
index 000000000000..442d356e1dd6
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ErrorFrame.php
@@ -0,0 +1,189 @@
+google.cloud.migrationcenter.v1.ErrorFrame
+ */
+class ErrorFrame extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The identifier of the ErrorFrame.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Output only. All the violations that were detected for the frame.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.FrameViolationEntry violations = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $violations;
+ /**
+ * Output only. The frame that was originally reported.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetFrame original_frame = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $original_frame = null;
+ /**
+ * Output only. Frame ingestion time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp ingestion_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $ingestion_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The identifier of the ErrorFrame.
+ * @type array<\Google\Cloud\MigrationCenter\V1\FrameViolationEntry>|\Google\Protobuf\Internal\RepeatedField $violations
+ * Output only. All the violations that were detected for the frame.
+ * @type \Google\Cloud\MigrationCenter\V1\AssetFrame $original_frame
+ * Output only. The frame that was originally reported.
+ * @type \Google\Protobuf\Timestamp $ingestion_time
+ * Output only. Frame ingestion time.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The identifier of the ErrorFrame.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The identifier of the ErrorFrame.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. All the violations that were detected for the frame.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.FrameViolationEntry violations = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getViolations()
+ {
+ return $this->violations;
+ }
+
+ /**
+ * Output only. All the violations that were detected for the frame.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.FrameViolationEntry violations = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\MigrationCenter\V1\FrameViolationEntry>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setViolations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\FrameViolationEntry::class);
+ $this->violations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The frame that was originally reported.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetFrame original_frame = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\MigrationCenter\V1\AssetFrame|null
+ */
+ public function getOriginalFrame()
+ {
+ return $this->original_frame;
+ }
+
+ public function hasOriginalFrame()
+ {
+ return isset($this->original_frame);
+ }
+
+ public function clearOriginalFrame()
+ {
+ unset($this->original_frame);
+ }
+
+ /**
+ * Output only. The frame that was originally reported.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetFrame original_frame = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\MigrationCenter\V1\AssetFrame $var
+ * @return $this
+ */
+ public function setOriginalFrame($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\AssetFrame::class);
+ $this->original_frame = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Frame ingestion time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp ingestion_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getIngestionTime()
+ {
+ return $this->ingestion_time;
+ }
+
+ public function hasIngestionTime()
+ {
+ return isset($this->ingestion_time);
+ }
+
+ public function clearIngestionTime()
+ {
+ unset($this->ingestion_time);
+ }
+
+ /**
+ * Output only. Frame ingestion time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp ingestion_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setIngestionTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->ingestion_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ErrorFrameView.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ErrorFrameView.php
new file mode 100644
index 000000000000..2d2db3356bf8
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ErrorFrameView.php
@@ -0,0 +1,62 @@
+google.cloud.migrationcenter.v1.ErrorFrameView
+ */
+class ErrorFrameView
+{
+ /**
+ * Value is unset. The system will fallback to the default value.
+ *
+ * Generated from protobuf enum ERROR_FRAME_VIEW_UNSPECIFIED = 0;
+ */
+ const ERROR_FRAME_VIEW_UNSPECIFIED = 0;
+ /**
+ * Include basic frame data, but not the full contents.
+ *
+ * Generated from protobuf enum ERROR_FRAME_VIEW_BASIC = 1;
+ */
+ const ERROR_FRAME_VIEW_BASIC = 1;
+ /**
+ * Include everything.
+ *
+ * Generated from protobuf enum ERROR_FRAME_VIEW_FULL = 2;
+ */
+ const ERROR_FRAME_VIEW_FULL = 2;
+
+ private static $valueToName = [
+ self::ERROR_FRAME_VIEW_UNSPECIFIED => 'ERROR_FRAME_VIEW_UNSPECIFIED',
+ self::ERROR_FRAME_VIEW_BASIC => 'ERROR_FRAME_VIEW_BASIC',
+ self::ERROR_FRAME_VIEW_FULL => 'ERROR_FRAME_VIEW_FULL',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ExecutionReport.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ExecutionReport.php
new file mode 100644
index 000000000000..3225a8a85559
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ExecutionReport.php
@@ -0,0 +1,145 @@
+google.cloud.migrationcenter.v1.ExecutionReport
+ */
+class ExecutionReport extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Total number of asset frames reported for the import job.
+ *
+ * Generated from protobuf field int32 frames_reported = 1;
+ */
+ protected $frames_reported = 0;
+ /**
+ * Validation errors encountered during the execution of the import job.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ValidationReport execution_errors = 2;
+ */
+ protected $execution_errors = null;
+ /**
+ * Output only. Total number of rows in the import job.
+ *
+ * Generated from protobuf field int32 total_rows_count = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $total_rows_count = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $frames_reported
+ * Total number of asset frames reported for the import job.
+ * @type \Google\Cloud\MigrationCenter\V1\ValidationReport $execution_errors
+ * Validation errors encountered during the execution of the import job.
+ * @type int $total_rows_count
+ * Output only. Total number of rows in the import job.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Total number of asset frames reported for the import job.
+ *
+ * Generated from protobuf field int32 frames_reported = 1;
+ * @return int
+ */
+ public function getFramesReported()
+ {
+ return $this->frames_reported;
+ }
+
+ /**
+ * Total number of asset frames reported for the import job.
+ *
+ * Generated from protobuf field int32 frames_reported = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setFramesReported($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->frames_reported = $var;
+
+ return $this;
+ }
+
+ /**
+ * Validation errors encountered during the execution of the import job.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ValidationReport execution_errors = 2;
+ * @return \Google\Cloud\MigrationCenter\V1\ValidationReport|null
+ */
+ public function getExecutionErrors()
+ {
+ return $this->execution_errors;
+ }
+
+ public function hasExecutionErrors()
+ {
+ return isset($this->execution_errors);
+ }
+
+ public function clearExecutionErrors()
+ {
+ unset($this->execution_errors);
+ }
+
+ /**
+ * Validation errors encountered during the execution of the import job.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ValidationReport execution_errors = 2;
+ * @param \Google\Cloud\MigrationCenter\V1\ValidationReport $var
+ * @return $this
+ */
+ public function setExecutionErrors($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ValidationReport::class);
+ $this->execution_errors = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Total number of rows in the import job.
+ *
+ * Generated from protobuf field int32 total_rows_count = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getTotalRowsCount()
+ {
+ return $this->total_rows_count;
+ }
+
+ /**
+ * Output only. Total number of rows in the import job.
+ *
+ * Generated from protobuf field int32 total_rows_count = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setTotalRowsCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->total_rows_count = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FileValidationReport.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FileValidationReport.php
new file mode 100644
index 000000000000..c2a87564211b
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FileValidationReport.php
@@ -0,0 +1,173 @@
+google.cloud.migrationcenter.v1.FileValidationReport
+ */
+class FileValidationReport extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the file.
+ *
+ * Generated from protobuf field string file_name = 1;
+ */
+ protected $file_name = '';
+ /**
+ * Partial list of rows that encountered validation error.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportRowError row_errors = 2;
+ */
+ private $row_errors;
+ /**
+ * Flag indicating that processing was aborted due to maximum number of
+ * errors.
+ *
+ * Generated from protobuf field bool partial_report = 3;
+ */
+ protected $partial_report = false;
+ /**
+ * List of file level errors.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportError file_errors = 4;
+ */
+ private $file_errors;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $file_name
+ * The name of the file.
+ * @type array<\Google\Cloud\MigrationCenter\V1\ImportRowError>|\Google\Protobuf\Internal\RepeatedField $row_errors
+ * Partial list of rows that encountered validation error.
+ * @type bool $partial_report
+ * Flag indicating that processing was aborted due to maximum number of
+ * errors.
+ * @type array<\Google\Cloud\MigrationCenter\V1\ImportError>|\Google\Protobuf\Internal\RepeatedField $file_errors
+ * List of file level errors.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the file.
+ *
+ * Generated from protobuf field string file_name = 1;
+ * @return string
+ */
+ public function getFileName()
+ {
+ return $this->file_name;
+ }
+
+ /**
+ * The name of the file.
+ *
+ * Generated from protobuf field string file_name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setFileName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->file_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Partial list of rows that encountered validation error.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportRowError row_errors = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRowErrors()
+ {
+ return $this->row_errors;
+ }
+
+ /**
+ * Partial list of rows that encountered validation error.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportRowError row_errors = 2;
+ * @param array<\Google\Cloud\MigrationCenter\V1\ImportRowError>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRowErrors($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ImportRowError::class);
+ $this->row_errors = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Flag indicating that processing was aborted due to maximum number of
+ * errors.
+ *
+ * Generated from protobuf field bool partial_report = 3;
+ * @return bool
+ */
+ public function getPartialReport()
+ {
+ return $this->partial_report;
+ }
+
+ /**
+ * Flag indicating that processing was aborted due to maximum number of
+ * errors.
+ *
+ * Generated from protobuf field bool partial_report = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setPartialReport($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->partial_report = $var;
+
+ return $this;
+ }
+
+ /**
+ * List of file level errors.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportError file_errors = 4;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getFileErrors()
+ {
+ return $this->file_errors;
+ }
+
+ /**
+ * List of file level errors.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportError file_errors = 4;
+ * @param array<\Google\Cloud\MigrationCenter\V1\ImportError>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setFileErrors($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ImportError::class);
+ $this->file_errors = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FitDescriptor.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FitDescriptor.php
new file mode 100644
index 000000000000..af3374b36ae8
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FitDescriptor.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.FitDescriptor
+ */
+class FitDescriptor extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Fit level.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.FitDescriptor.FitLevel fit_level = 1;
+ */
+ protected $fit_level = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $fit_level
+ * Fit level.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Fit level.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.FitDescriptor.FitLevel fit_level = 1;
+ * @return int
+ */
+ public function getFitLevel()
+ {
+ return $this->fit_level;
+ }
+
+ /**
+ * Fit level.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.FitDescriptor.FitLevel fit_level = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setFitLevel($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\FitDescriptor\FitLevel::class);
+ $this->fit_level = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FitDescriptor/FitLevel.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FitDescriptor/FitLevel.php
new file mode 100644
index 000000000000..e680d898a10c
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FitDescriptor/FitLevel.php
@@ -0,0 +1,71 @@
+google.cloud.migrationcenter.v1.FitDescriptor.FitLevel
+ */
+class FitLevel
+{
+ /**
+ * Not enough information.
+ *
+ * Generated from protobuf enum FIT_LEVEL_UNSPECIFIED = 0;
+ */
+ const FIT_LEVEL_UNSPECIFIED = 0;
+ /**
+ * Fit.
+ *
+ * Generated from protobuf enum FIT = 1;
+ */
+ const FIT = 1;
+ /**
+ * No Fit.
+ *
+ * Generated from protobuf enum NO_FIT = 2;
+ */
+ const NO_FIT = 2;
+ /**
+ * Fit with effort.
+ *
+ * Generated from protobuf enum REQUIRES_EFFORT = 3;
+ */
+ const REQUIRES_EFFORT = 3;
+
+ private static $valueToName = [
+ self::FIT_LEVEL_UNSPECIFIED => 'FIT_LEVEL_UNSPECIFIED',
+ self::FIT => 'FIT',
+ self::NO_FIT => 'NO_FIT',
+ self::REQUIRES_EFFORT => 'REQUIRES_EFFORT',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(FitLevel::class, \Google\Cloud\MigrationCenter\V1\FitDescriptor_FitLevel::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FrameViolationEntry.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FrameViolationEntry.php
new file mode 100644
index 000000000000..ef32d08c50cf
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FrameViolationEntry.php
@@ -0,0 +1,102 @@
+google.cloud.migrationcenter.v1.FrameViolationEntry
+ */
+class FrameViolationEntry extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The field of the original frame where the violation occurred.
+ *
+ * Generated from protobuf field string field = 1;
+ */
+ protected $field = '';
+ /**
+ * A message describing the violation.
+ *
+ * Generated from protobuf field string violation = 2;
+ */
+ protected $violation = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $field
+ * The field of the original frame where the violation occurred.
+ * @type string $violation
+ * A message describing the violation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The field of the original frame where the violation occurred.
+ *
+ * Generated from protobuf field string field = 1;
+ * @return string
+ */
+ public function getField()
+ {
+ return $this->field;
+ }
+
+ /**
+ * The field of the original frame where the violation occurred.
+ *
+ * Generated from protobuf field string field = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setField($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->field = $var;
+
+ return $this;
+ }
+
+ /**
+ * A message describing the violation.
+ *
+ * Generated from protobuf field string violation = 2;
+ * @return string
+ */
+ public function getViolation()
+ {
+ return $this->violation;
+ }
+
+ /**
+ * A message describing the violation.
+ *
+ * Generated from protobuf field string violation = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setViolation($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->violation = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Frames.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Frames.php
new file mode 100644
index 000000000000..e838abbd4204
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Frames.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.Frames
+ */
+class Frames extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A repeated field of asset data.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.AssetFrame frames_data = 1;
+ */
+ private $frames_data;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\AssetFrame>|\Google\Protobuf\Internal\RepeatedField $frames_data
+ * A repeated field of asset data.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A repeated field of asset data.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.AssetFrame frames_data = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getFramesData()
+ {
+ return $this->frames_data;
+ }
+
+ /**
+ * A repeated field of asset data.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.AssetFrame frames_data = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\AssetFrame>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setFramesData($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\AssetFrame::class);
+ $this->frames_data = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FstabEntry.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FstabEntry.php
new file mode 100644
index 000000000000..871f30e54357
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FstabEntry.php
@@ -0,0 +1,241 @@
+google.cloud.migrationcenter.v1.FstabEntry
+ */
+class FstabEntry extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The block special device or remote filesystem to be mounted.
+ *
+ * Generated from protobuf field string spec = 1;
+ */
+ protected $spec = '';
+ /**
+ * The mount point for the filesystem.
+ *
+ * Generated from protobuf field string file = 2;
+ */
+ protected $file = '';
+ /**
+ * The type of the filesystem.
+ *
+ * Generated from protobuf field string vfstype = 3;
+ */
+ protected $vfstype = '';
+ /**
+ * Mount options associated with the filesystem.
+ *
+ * Generated from protobuf field string mntops = 4;
+ */
+ protected $mntops = '';
+ /**
+ * Used by dump to determine which filesystems need to be dumped.
+ *
+ * Generated from protobuf field int32 freq = 5;
+ */
+ protected $freq = 0;
+ /**
+ * Used by the fsck(8) program to determine the order in which filesystem
+ * checks are done at reboot time.
+ *
+ * Generated from protobuf field int32 passno = 6;
+ */
+ protected $passno = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $spec
+ * The block special device or remote filesystem to be mounted.
+ * @type string $file
+ * The mount point for the filesystem.
+ * @type string $vfstype
+ * The type of the filesystem.
+ * @type string $mntops
+ * Mount options associated with the filesystem.
+ * @type int $freq
+ * Used by dump to determine which filesystems need to be dumped.
+ * @type int $passno
+ * Used by the fsck(8) program to determine the order in which filesystem
+ * checks are done at reboot time.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The block special device or remote filesystem to be mounted.
+ *
+ * Generated from protobuf field string spec = 1;
+ * @return string
+ */
+ public function getSpec()
+ {
+ return $this->spec;
+ }
+
+ /**
+ * The block special device or remote filesystem to be mounted.
+ *
+ * Generated from protobuf field string spec = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setSpec($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->spec = $var;
+
+ return $this;
+ }
+
+ /**
+ * The mount point for the filesystem.
+ *
+ * Generated from protobuf field string file = 2;
+ * @return string
+ */
+ public function getFile()
+ {
+ return $this->file;
+ }
+
+ /**
+ * The mount point for the filesystem.
+ *
+ * Generated from protobuf field string file = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setFile($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->file = $var;
+
+ return $this;
+ }
+
+ /**
+ * The type of the filesystem.
+ *
+ * Generated from protobuf field string vfstype = 3;
+ * @return string
+ */
+ public function getVfstype()
+ {
+ return $this->vfstype;
+ }
+
+ /**
+ * The type of the filesystem.
+ *
+ * Generated from protobuf field string vfstype = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setVfstype($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->vfstype = $var;
+
+ return $this;
+ }
+
+ /**
+ * Mount options associated with the filesystem.
+ *
+ * Generated from protobuf field string mntops = 4;
+ * @return string
+ */
+ public function getMntops()
+ {
+ return $this->mntops;
+ }
+
+ /**
+ * Mount options associated with the filesystem.
+ *
+ * Generated from protobuf field string mntops = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setMntops($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->mntops = $var;
+
+ return $this;
+ }
+
+ /**
+ * Used by dump to determine which filesystems need to be dumped.
+ *
+ * Generated from protobuf field int32 freq = 5;
+ * @return int
+ */
+ public function getFreq()
+ {
+ return $this->freq;
+ }
+
+ /**
+ * Used by dump to determine which filesystems need to be dumped.
+ *
+ * Generated from protobuf field int32 freq = 5;
+ * @param int $var
+ * @return $this
+ */
+ public function setFreq($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->freq = $var;
+
+ return $this;
+ }
+
+ /**
+ * Used by the fsck(8) program to determine the order in which filesystem
+ * checks are done at reboot time.
+ *
+ * Generated from protobuf field int32 passno = 6;
+ * @return int
+ */
+ public function getPassno()
+ {
+ return $this->passno;
+ }
+
+ /**
+ * Used by the fsck(8) program to determine the order in which filesystem
+ * checks are done at reboot time.
+ *
+ * Generated from protobuf field int32 passno = 6;
+ * @param int $var
+ * @return $this
+ */
+ public function setPassno($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->passno = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FstabEntryList.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FstabEntryList.php
new file mode 100644
index 000000000000..cc53a54a3edd
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/FstabEntryList.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.FstabEntryList
+ */
+class FstabEntryList extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Fstab entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.FstabEntry entries = 1;
+ */
+ private $entries;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\FstabEntry>|\Google\Protobuf\Internal\RepeatedField $entries
+ * Fstab entries.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Fstab entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.FstabEntry entries = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEntries()
+ {
+ return $this->entries;
+ }
+
+ /**
+ * Fstab entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.FstabEntry entries = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\FstabEntry>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEntries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\FstabEntry::class);
+ $this->entries = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GenericInsight.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GenericInsight.php
new file mode 100644
index 000000000000..4795382282f3
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GenericInsight.php
@@ -0,0 +1,155 @@
+google.cloud.migrationcenter.v1.GenericInsight
+ */
+class GenericInsight extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Represents a globally unique message id for
+ * this insight, can be used for localization purposes, in case message_code
+ * is not yet known by the client use default_message instead.
+ *
+ * Generated from protobuf field int64 message_id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $message_id = 0;
+ /**
+ * Output only. In case message_code is not yet known by the client
+ * default_message will be the message to be used instead.
+ *
+ * Generated from protobuf field string default_message = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $default_message = '';
+ /**
+ * Output only. Additional information about the insight, each entry can be a
+ * logical entry and must make sense if it is displayed with line breaks
+ * between each entry. Text can contain md style links.
+ *
+ * Generated from protobuf field repeated string additional_information = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $additional_information;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $message_id
+ * Output only. Represents a globally unique message id for
+ * this insight, can be used for localization purposes, in case message_code
+ * is not yet known by the client use default_message instead.
+ * @type string $default_message
+ * Output only. In case message_code is not yet known by the client
+ * default_message will be the message to be used instead.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $additional_information
+ * Output only. Additional information about the insight, each entry can be a
+ * logical entry and must make sense if it is displayed with line breaks
+ * between each entry. Text can contain md style links.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Represents a globally unique message id for
+ * this insight, can be used for localization purposes, in case message_code
+ * is not yet known by the client use default_message instead.
+ *
+ * Generated from protobuf field int64 message_id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int|string
+ */
+ public function getMessageId()
+ {
+ return $this->message_id;
+ }
+
+ /**
+ * Output only. Represents a globally unique message id for
+ * this insight, can be used for localization purposes, in case message_code
+ * is not yet known by the client use default_message instead.
+ *
+ * Generated from protobuf field int64 message_id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setMessageId($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->message_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. In case message_code is not yet known by the client
+ * default_message will be the message to be used instead.
+ *
+ * Generated from protobuf field string default_message = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getDefaultMessage()
+ {
+ return $this->default_message;
+ }
+
+ /**
+ * Output only. In case message_code is not yet known by the client
+ * default_message will be the message to be used instead.
+ *
+ * Generated from protobuf field string default_message = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setDefaultMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->default_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Additional information about the insight, each entry can be a
+ * logical entry and must make sense if it is displayed with line breaks
+ * between each entry. Text can contain md style links.
+ *
+ * Generated from protobuf field repeated string additional_information = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAdditionalInformation()
+ {
+ return $this->additional_information;
+ }
+
+ /**
+ * Output only. Additional information about the insight, each entry can be a
+ * logical entry and must make sense if it is displayed with line breaks
+ * between each entry. Text can contain md style links.
+ *
+ * Generated from protobuf field repeated string additional_information = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAdditionalInformation($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->additional_information = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GenericPlatformDetails.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GenericPlatformDetails.php
new file mode 100644
index 000000000000..c45ee7a8e4d6
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GenericPlatformDetails.php
@@ -0,0 +1,75 @@
+google.cloud.migrationcenter.v1.GenericPlatformDetails
+ */
+class GenericPlatformDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Free text representation of the machine location.
+ * The format of this field should not be relied on. Different VMs in the same
+ * location may have different string values for this field.
+ *
+ * Generated from protobuf field string location = 1;
+ */
+ protected $location = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $location
+ * Free text representation of the machine location.
+ * The format of this field should not be relied on. Different VMs in the same
+ * location may have different string values for this field.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Free text representation of the machine location.
+ * The format of this field should not be relied on. Different VMs in the same
+ * location may have different string values for this field.
+ *
+ * Generated from protobuf field string location = 1;
+ * @return string
+ */
+ public function getLocation()
+ {
+ return $this->location;
+ }
+
+ /**
+ * Free text representation of the machine location.
+ * The format of this field should not be relied on. Different VMs in the same
+ * location may have different string values for this field.
+ *
+ * Generated from protobuf field string location = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setLocation($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->location = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetAssetRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetAssetRequest.php
new file mode 100644
index 000000000000..a1d156249c2f
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetAssetRequest.php
@@ -0,0 +1,115 @@
+google.cloud.migrationcenter.v1.GetAssetRequest
+ */
+class GetAssetRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * View of the assets. Defaults to BASIC.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetView view = 2;
+ */
+ protected $view = 0;
+
+ /**
+ * @param string $name Required. Name of the resource. Please see
+ * {@see MigrationCenterClient::assetName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\GetAssetRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource.
+ * @type int $view
+ * View of the assets. Defaults to BASIC.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * View of the assets. Defaults to BASIC.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetView view = 2;
+ * @return int
+ */
+ public function getView()
+ {
+ return $this->view;
+ }
+
+ /**
+ * View of the assets. Defaults to BASIC.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetView view = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setView($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\AssetView::class);
+ $this->view = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetErrorFrameRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetErrorFrameRequest.php
new file mode 100644
index 000000000000..450c50959d97
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetErrorFrameRequest.php
@@ -0,0 +1,127 @@
+google.cloud.migrationcenter.v1.GetErrorFrameRequest
+ */
+class GetErrorFrameRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the frame to retrieve.
+ * Format:
+ * projects/{project}/locations/{location}/sources/{source}/errorFrames/{error_frame}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. An optional view mode to control the level of details for the
+ * frame. The default is a basic frame view.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ErrorFrameView view = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $view = 0;
+
+ /**
+ * @param string $name Required. The name of the frame to retrieve.
+ * Format:
+ * projects/{project}/locations/{location}/sources/{source}/errorFrames/{error_frame}
+ * Please see {@see MigrationCenterClient::errorFrameName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\GetErrorFrameRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the frame to retrieve.
+ * Format:
+ * projects/{project}/locations/{location}/sources/{source}/errorFrames/{error_frame}
+ * @type int $view
+ * Optional. An optional view mode to control the level of details for the
+ * frame. The default is a basic frame view.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the frame to retrieve.
+ * Format:
+ * projects/{project}/locations/{location}/sources/{source}/errorFrames/{error_frame}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the frame to retrieve.
+ * Format:
+ * projects/{project}/locations/{location}/sources/{source}/errorFrames/{error_frame}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional view mode to control the level of details for the
+ * frame. The default is a basic frame view.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ErrorFrameView view = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getView()
+ {
+ return $this->view;
+ }
+
+ /**
+ * Optional. An optional view mode to control the level of details for the
+ * frame. The default is a basic frame view.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ErrorFrameView view = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setView($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\ErrorFrameView::class);
+ $this->view = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetGroupRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetGroupRequest.php
new file mode 100644
index 000000000000..c01e860e2eed
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetGroupRequest.php
@@ -0,0 +1,81 @@
+google.cloud.migrationcenter.v1.GetGroupRequest
+ */
+class GetGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the resource. Please see
+ * {@see MigrationCenterClient::groupName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\GetGroupRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetImportDataFileRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetImportDataFileRequest.php
new file mode 100644
index 000000000000..f091acfc527e
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetImportDataFileRequest.php
@@ -0,0 +1,81 @@
+google.cloud.migrationcenter.v1.GetImportDataFileRequest
+ */
+class GetImportDataFileRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the ImportDataFile.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the ImportDataFile. Please see
+ * {@see MigrationCenterClient::importDataFileName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\GetImportDataFileRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the ImportDataFile.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the ImportDataFile.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the ImportDataFile.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetImportJobRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetImportJobRequest.php
new file mode 100644
index 000000000000..1592d02043f5
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetImportJobRequest.php
@@ -0,0 +1,119 @@
+google.cloud.migrationcenter.v1.GetImportJobRequest
+ */
+class GetImportJobRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. The level of details of the import job.
+ * Default value is FULL.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJobView view = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $view = 0;
+
+ /**
+ * @param string $name Required. Name of the resource. Please see
+ * {@see MigrationCenterClient::importJobName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\GetImportJobRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource.
+ * @type int $view
+ * Optional. The level of details of the import job.
+ * Default value is FULL.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The level of details of the import job.
+ * Default value is FULL.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJobView view = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getView()
+ {
+ return $this->view;
+ }
+
+ /**
+ * Optional. The level of details of the import job.
+ * Default value is FULL.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJobView view = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setView($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\ImportJobView::class);
+ $this->view = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetPreferenceSetRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetPreferenceSetRequest.php
new file mode 100644
index 000000000000..27ba45722aeb
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetPreferenceSetRequest.php
@@ -0,0 +1,81 @@
+google.cloud.migrationcenter.v1.GetPreferenceSetRequest
+ */
+class GetPreferenceSetRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the resource. Please see
+ * {@see MigrationCenterClient::preferenceSetName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\GetPreferenceSetRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetReportConfigRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetReportConfigRequest.php
new file mode 100644
index 000000000000..21a31ca5025d
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetReportConfigRequest.php
@@ -0,0 +1,81 @@
+google.cloud.migrationcenter.v1.GetReportConfigRequest
+ */
+class GetReportConfigRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the resource. Please see
+ * {@see MigrationCenterClient::reportConfigName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\GetReportConfigRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetReportRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetReportRequest.php
new file mode 100644
index 000000000000..151893ba187d
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetReportRequest.php
@@ -0,0 +1,115 @@
+google.cloud.migrationcenter.v1.GetReportRequest
+ */
+class GetReportRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Determines what information to retrieve for the Report.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportView view = 6;
+ */
+ protected $view = 0;
+
+ /**
+ * @param string $name Required. Name of the resource. Please see
+ * {@see MigrationCenterClient::reportName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\GetReportRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource.
+ * @type int $view
+ * Determines what information to retrieve for the Report.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Determines what information to retrieve for the Report.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportView view = 6;
+ * @return int
+ */
+ public function getView()
+ {
+ return $this->view;
+ }
+
+ /**
+ * Determines what information to retrieve for the Report.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportView view = 6;
+ * @param int $var
+ * @return $this
+ */
+ public function setView($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\ReportView::class);
+ $this->view = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetSettingsRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetSettingsRequest.php
new file mode 100644
index 000000000000..44708c87d75f
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetSettingsRequest.php
@@ -0,0 +1,81 @@
+google.cloud.migrationcenter.v1.GetSettingsRequest
+ */
+class GetSettingsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the resource. Please see
+ * {@see MigrationCenterClient::settingsName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\GetSettingsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetSourceRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetSourceRequest.php
new file mode 100644
index 000000000000..0b45d01ed2ee
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GetSourceRequest.php
@@ -0,0 +1,81 @@
+google.cloud.migrationcenter.v1.GetSourceRequest
+ */
+class GetSourceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the resource. Please see
+ * {@see MigrationCenterClient::sourceName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\GetSourceRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Group.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Group.php
new file mode 100644
index 000000000000..6b468b1fd52c
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Group.php
@@ -0,0 +1,260 @@
+google.cloud.migrationcenter.v1.Group
+ */
+class Group extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The name of the group.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Output only. The timestamp when the group was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The timestamp when the group was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * Labels as key value pairs.
+ *
+ * Generated from protobuf field map labels = 4;
+ */
+ private $labels;
+ /**
+ * User-friendly display name.
+ *
+ * Generated from protobuf field string display_name = 5;
+ */
+ protected $display_name = '';
+ /**
+ * The description of the resource.
+ *
+ * Generated from protobuf field string description = 6;
+ */
+ protected $description = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The name of the group.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The timestamp when the group was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The timestamp when the group was last updated.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Labels as key value pairs.
+ * @type string $display_name
+ * User-friendly display name.
+ * @type string $description
+ * The description of the resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The name of the group.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The name of the group.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The timestamp when the group was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The timestamp when the group was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The timestamp when the group was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The timestamp when the group was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Labels as key value pairs.
+ *
+ * Generated from protobuf field map labels = 4;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Labels as key value pairs.
+ *
+ * Generated from protobuf field map labels = 4;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->labels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * User-friendly display name.
+ *
+ * Generated from protobuf field string display_name = 5;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * User-friendly display name.
+ *
+ * Generated from protobuf field string display_name = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The description of the resource.
+ *
+ * Generated from protobuf field string description = 6;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * The description of the resource.
+ *
+ * Generated from protobuf field string description = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestConfigDetails.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestConfigDetails.php
new file mode 100644
index 000000000000..e5c8b3af74cd
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestConfigDetails.php
@@ -0,0 +1,233 @@
+google.cloud.migrationcenter.v1.GuestConfigDetails
+ */
+class GuestConfigDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * OS issue (typically /etc/issue in Linux).
+ *
+ * Generated from protobuf field string issue = 1;
+ */
+ protected $issue = '';
+ /**
+ * Mount list (Linux fstab).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.FstabEntryList fstab = 2;
+ */
+ protected $fstab = null;
+ /**
+ * Hosts file (/etc/hosts).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.HostsEntryList hosts = 3;
+ */
+ protected $hosts = null;
+ /**
+ * NFS exports.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NfsExportList nfs_exports = 4;
+ */
+ protected $nfs_exports = null;
+ /**
+ * Security-Enhanced Linux (SELinux) mode.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GuestConfigDetails.SeLinuxMode selinux_mode = 5;
+ */
+ protected $selinux_mode = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $issue
+ * OS issue (typically /etc/issue in Linux).
+ * @type \Google\Cloud\MigrationCenter\V1\FstabEntryList $fstab
+ * Mount list (Linux fstab).
+ * @type \Google\Cloud\MigrationCenter\V1\HostsEntryList $hosts
+ * Hosts file (/etc/hosts).
+ * @type \Google\Cloud\MigrationCenter\V1\NfsExportList $nfs_exports
+ * NFS exports.
+ * @type int $selinux_mode
+ * Security-Enhanced Linux (SELinux) mode.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * OS issue (typically /etc/issue in Linux).
+ *
+ * Generated from protobuf field string issue = 1;
+ * @return string
+ */
+ public function getIssue()
+ {
+ return $this->issue;
+ }
+
+ /**
+ * OS issue (typically /etc/issue in Linux).
+ *
+ * Generated from protobuf field string issue = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setIssue($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->issue = $var;
+
+ return $this;
+ }
+
+ /**
+ * Mount list (Linux fstab).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.FstabEntryList fstab = 2;
+ * @return \Google\Cloud\MigrationCenter\V1\FstabEntryList|null
+ */
+ public function getFstab()
+ {
+ return $this->fstab;
+ }
+
+ public function hasFstab()
+ {
+ return isset($this->fstab);
+ }
+
+ public function clearFstab()
+ {
+ unset($this->fstab);
+ }
+
+ /**
+ * Mount list (Linux fstab).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.FstabEntryList fstab = 2;
+ * @param \Google\Cloud\MigrationCenter\V1\FstabEntryList $var
+ * @return $this
+ */
+ public function setFstab($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\FstabEntryList::class);
+ $this->fstab = $var;
+
+ return $this;
+ }
+
+ /**
+ * Hosts file (/etc/hosts).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.HostsEntryList hosts = 3;
+ * @return \Google\Cloud\MigrationCenter\V1\HostsEntryList|null
+ */
+ public function getHosts()
+ {
+ return $this->hosts;
+ }
+
+ public function hasHosts()
+ {
+ return isset($this->hosts);
+ }
+
+ public function clearHosts()
+ {
+ unset($this->hosts);
+ }
+
+ /**
+ * Hosts file (/etc/hosts).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.HostsEntryList hosts = 3;
+ * @param \Google\Cloud\MigrationCenter\V1\HostsEntryList $var
+ * @return $this
+ */
+ public function setHosts($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\HostsEntryList::class);
+ $this->hosts = $var;
+
+ return $this;
+ }
+
+ /**
+ * NFS exports.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NfsExportList nfs_exports = 4;
+ * @return \Google\Cloud\MigrationCenter\V1\NfsExportList|null
+ */
+ public function getNfsExports()
+ {
+ return $this->nfs_exports;
+ }
+
+ public function hasNfsExports()
+ {
+ return isset($this->nfs_exports);
+ }
+
+ public function clearNfsExports()
+ {
+ unset($this->nfs_exports);
+ }
+
+ /**
+ * NFS exports.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NfsExportList nfs_exports = 4;
+ * @param \Google\Cloud\MigrationCenter\V1\NfsExportList $var
+ * @return $this
+ */
+ public function setNfsExports($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\NfsExportList::class);
+ $this->nfs_exports = $var;
+
+ return $this;
+ }
+
+ /**
+ * Security-Enhanced Linux (SELinux) mode.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GuestConfigDetails.SeLinuxMode selinux_mode = 5;
+ * @return int
+ */
+ public function getSelinuxMode()
+ {
+ return $this->selinux_mode;
+ }
+
+ /**
+ * Security-Enhanced Linux (SELinux) mode.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GuestConfigDetails.SeLinuxMode selinux_mode = 5;
+ * @param int $var
+ * @return $this
+ */
+ public function setSelinuxMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\GuestConfigDetails\SeLinuxMode::class);
+ $this->selinux_mode = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestConfigDetails/SeLinuxMode.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestConfigDetails/SeLinuxMode.php
new file mode 100644
index 000000000000..34ea69b84192
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestConfigDetails/SeLinuxMode.php
@@ -0,0 +1,71 @@
+google.cloud.migrationcenter.v1.GuestConfigDetails.SeLinuxMode
+ */
+class SeLinuxMode
+{
+ /**
+ * SELinux mode unknown or unspecified.
+ *
+ * Generated from protobuf enum SE_LINUX_MODE_UNSPECIFIED = 0;
+ */
+ const SE_LINUX_MODE_UNSPECIFIED = 0;
+ /**
+ * SELinux is disabled.
+ *
+ * Generated from protobuf enum SE_LINUX_MODE_DISABLED = 1;
+ */
+ const SE_LINUX_MODE_DISABLED = 1;
+ /**
+ * SELinux permissive mode.
+ *
+ * Generated from protobuf enum SE_LINUX_MODE_PERMISSIVE = 2;
+ */
+ const SE_LINUX_MODE_PERMISSIVE = 2;
+ /**
+ * SELinux enforcing mode.
+ *
+ * Generated from protobuf enum SE_LINUX_MODE_ENFORCING = 3;
+ */
+ const SE_LINUX_MODE_ENFORCING = 3;
+
+ private static $valueToName = [
+ self::SE_LINUX_MODE_UNSPECIFIED => 'SE_LINUX_MODE_UNSPECIFIED',
+ self::SE_LINUX_MODE_DISABLED => 'SE_LINUX_MODE_DISABLED',
+ self::SE_LINUX_MODE_PERMISSIVE => 'SE_LINUX_MODE_PERMISSIVE',
+ self::SE_LINUX_MODE_ENFORCING => 'SE_LINUX_MODE_ENFORCING',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(SeLinuxMode::class, \Google\Cloud\MigrationCenter\V1\GuestConfigDetails_SeLinuxMode::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestInstalledApplication.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestInstalledApplication.php
new file mode 100644
index 000000000000..d11d9a3dadab
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestInstalledApplication.php
@@ -0,0 +1,213 @@
+google.cloud.migrationcenter.v1.GuestInstalledApplication
+ */
+class GuestInstalledApplication extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Installed application name.
+ *
+ * Generated from protobuf field string application_name = 1;
+ */
+ protected $application_name = '';
+ /**
+ * Installed application vendor.
+ *
+ * Generated from protobuf field string vendor = 2;
+ */
+ protected $vendor = '';
+ /**
+ * The time when the application was installed.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp install_time = 3;
+ */
+ protected $install_time = null;
+ /**
+ * Source path.
+ *
+ * Generated from protobuf field string path = 4;
+ */
+ protected $path = '';
+ /**
+ * Installed application version.
+ *
+ * Generated from protobuf field string version = 5;
+ */
+ protected $version = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $application_name
+ * Installed application name.
+ * @type string $vendor
+ * Installed application vendor.
+ * @type \Google\Protobuf\Timestamp $install_time
+ * The time when the application was installed.
+ * @type string $path
+ * Source path.
+ * @type string $version
+ * Installed application version.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Installed application name.
+ *
+ * Generated from protobuf field string application_name = 1;
+ * @return string
+ */
+ public function getApplicationName()
+ {
+ return $this->application_name;
+ }
+
+ /**
+ * Installed application name.
+ *
+ * Generated from protobuf field string application_name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setApplicationName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->application_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Installed application vendor.
+ *
+ * Generated from protobuf field string vendor = 2;
+ * @return string
+ */
+ public function getVendor()
+ {
+ return $this->vendor;
+ }
+
+ /**
+ * Installed application vendor.
+ *
+ * Generated from protobuf field string vendor = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setVendor($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->vendor = $var;
+
+ return $this;
+ }
+
+ /**
+ * The time when the application was installed.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp install_time = 3;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getInstallTime()
+ {
+ return $this->install_time;
+ }
+
+ public function hasInstallTime()
+ {
+ return isset($this->install_time);
+ }
+
+ public function clearInstallTime()
+ {
+ unset($this->install_time);
+ }
+
+ /**
+ * The time when the application was installed.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp install_time = 3;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setInstallTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->install_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Source path.
+ *
+ * Generated from protobuf field string path = 4;
+ * @return string
+ */
+ public function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * Source path.
+ *
+ * Generated from protobuf field string path = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->path = $var;
+
+ return $this;
+ }
+
+ /**
+ * Installed application version.
+ *
+ * Generated from protobuf field string version = 5;
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * Installed application version.
+ *
+ * Generated from protobuf field string version = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestInstalledApplicationList.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestInstalledApplicationList.php
new file mode 100644
index 000000000000..7f22bc068a8b
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestInstalledApplicationList.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.GuestInstalledApplicationList
+ */
+class GuestInstalledApplicationList extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Application entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.GuestInstalledApplication entries = 1;
+ */
+ private $entries;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\GuestInstalledApplication>|\Google\Protobuf\Internal\RepeatedField $entries
+ * Application entries.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Application entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.GuestInstalledApplication entries = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEntries()
+ {
+ return $this->entries;
+ }
+
+ /**
+ * Application entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.GuestInstalledApplication entries = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\GuestInstalledApplication>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEntries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\GuestInstalledApplication::class);
+ $this->entries = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestOsDetails.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestOsDetails.php
new file mode 100644
index 000000000000..83c03f363e10
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestOsDetails.php
@@ -0,0 +1,223 @@
+google.cloud.migrationcenter.v1.GuestOsDetails
+ */
+class GuestOsDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the operating system.
+ *
+ * Generated from protobuf field string os_name = 1;
+ */
+ protected $os_name = '';
+ /**
+ * What family the OS belong to, if known.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.OperatingSystemFamily family = 2;
+ */
+ protected $family = 0;
+ /**
+ * The version of the operating system.
+ *
+ * Generated from protobuf field string version = 3;
+ */
+ protected $version = '';
+ /**
+ * OS and app configuration.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GuestConfigDetails config = 4;
+ */
+ protected $config = null;
+ /**
+ * Runtime information.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GuestRuntimeDetails runtime = 5;
+ */
+ protected $runtime = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $os_name
+ * The name of the operating system.
+ * @type int $family
+ * What family the OS belong to, if known.
+ * @type string $version
+ * The version of the operating system.
+ * @type \Google\Cloud\MigrationCenter\V1\GuestConfigDetails $config
+ * OS and app configuration.
+ * @type \Google\Cloud\MigrationCenter\V1\GuestRuntimeDetails $runtime
+ * Runtime information.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the operating system.
+ *
+ * Generated from protobuf field string os_name = 1;
+ * @return string
+ */
+ public function getOsName()
+ {
+ return $this->os_name;
+ }
+
+ /**
+ * The name of the operating system.
+ *
+ * Generated from protobuf field string os_name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setOsName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->os_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * What family the OS belong to, if known.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.OperatingSystemFamily family = 2;
+ * @return int
+ */
+ public function getFamily()
+ {
+ return $this->family;
+ }
+
+ /**
+ * What family the OS belong to, if known.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.OperatingSystemFamily family = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setFamily($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\OperatingSystemFamily::class);
+ $this->family = $var;
+
+ return $this;
+ }
+
+ /**
+ * The version of the operating system.
+ *
+ * Generated from protobuf field string version = 3;
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * The version of the operating system.
+ *
+ * Generated from protobuf field string version = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * OS and app configuration.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GuestConfigDetails config = 4;
+ * @return \Google\Cloud\MigrationCenter\V1\GuestConfigDetails|null
+ */
+ public function getConfig()
+ {
+ return $this->config;
+ }
+
+ public function hasConfig()
+ {
+ return isset($this->config);
+ }
+
+ public function clearConfig()
+ {
+ unset($this->config);
+ }
+
+ /**
+ * OS and app configuration.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GuestConfigDetails config = 4;
+ * @param \Google\Cloud\MigrationCenter\V1\GuestConfigDetails $var
+ * @return $this
+ */
+ public function setConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\GuestConfigDetails::class);
+ $this->config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Runtime information.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GuestRuntimeDetails runtime = 5;
+ * @return \Google\Cloud\MigrationCenter\V1\GuestRuntimeDetails|null
+ */
+ public function getRuntime()
+ {
+ return $this->runtime;
+ }
+
+ public function hasRuntime()
+ {
+ return isset($this->runtime);
+ }
+
+ public function clearRuntime()
+ {
+ unset($this->runtime);
+ }
+
+ /**
+ * Runtime information.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GuestRuntimeDetails runtime = 5;
+ * @param \Google\Cloud\MigrationCenter\V1\GuestRuntimeDetails $var
+ * @return $this
+ */
+ public function setRuntime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\GuestRuntimeDetails::class);
+ $this->runtime = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestRuntimeDetails.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestRuntimeDetails.php
new file mode 100644
index 000000000000..00c2013d7b03
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/GuestRuntimeDetails.php
@@ -0,0 +1,365 @@
+google.cloud.migrationcenter.v1.GuestRuntimeDetails
+ */
+class GuestRuntimeDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Running background services.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RunningServiceList services = 1;
+ */
+ protected $services = null;
+ /**
+ * Running processes.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RunningProcessList processes = 2;
+ */
+ protected $processes = null;
+ /**
+ * Runtime network information (connections, ports).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RuntimeNetworkInfo network = 3;
+ */
+ protected $network = null;
+ /**
+ * Last time the OS was booted.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp last_boot_time = 4;
+ */
+ protected $last_boot_time = null;
+ /**
+ * Domain, e.g. c.stratozone-development.internal.
+ *
+ * Generated from protobuf field string domain = 5;
+ */
+ protected $domain = '';
+ /**
+ * Machine name.
+ *
+ * Generated from protobuf field string machine_name = 6;
+ */
+ protected $machine_name = '';
+ /**
+ * Installed applications information.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GuestInstalledApplicationList installed_apps = 7;
+ */
+ protected $installed_apps = null;
+ /**
+ * Open files information.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.OpenFileList open_file_list = 8;
+ */
+ protected $open_file_list = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MigrationCenter\V1\RunningServiceList $services
+ * Running background services.
+ * @type \Google\Cloud\MigrationCenter\V1\RunningProcessList $processes
+ * Running processes.
+ * @type \Google\Cloud\MigrationCenter\V1\RuntimeNetworkInfo $network
+ * Runtime network information (connections, ports).
+ * @type \Google\Protobuf\Timestamp $last_boot_time
+ * Last time the OS was booted.
+ * @type string $domain
+ * Domain, e.g. c.stratozone-development.internal.
+ * @type string $machine_name
+ * Machine name.
+ * @type \Google\Cloud\MigrationCenter\V1\GuestInstalledApplicationList $installed_apps
+ * Installed applications information.
+ * @type \Google\Cloud\MigrationCenter\V1\OpenFileList $open_file_list
+ * Open files information.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Running background services.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RunningServiceList services = 1;
+ * @return \Google\Cloud\MigrationCenter\V1\RunningServiceList|null
+ */
+ public function getServices()
+ {
+ return $this->services;
+ }
+
+ public function hasServices()
+ {
+ return isset($this->services);
+ }
+
+ public function clearServices()
+ {
+ unset($this->services);
+ }
+
+ /**
+ * Running background services.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RunningServiceList services = 1;
+ * @param \Google\Cloud\MigrationCenter\V1\RunningServiceList $var
+ * @return $this
+ */
+ public function setServices($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\RunningServiceList::class);
+ $this->services = $var;
+
+ return $this;
+ }
+
+ /**
+ * Running processes.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RunningProcessList processes = 2;
+ * @return \Google\Cloud\MigrationCenter\V1\RunningProcessList|null
+ */
+ public function getProcesses()
+ {
+ return $this->processes;
+ }
+
+ public function hasProcesses()
+ {
+ return isset($this->processes);
+ }
+
+ public function clearProcesses()
+ {
+ unset($this->processes);
+ }
+
+ /**
+ * Running processes.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RunningProcessList processes = 2;
+ * @param \Google\Cloud\MigrationCenter\V1\RunningProcessList $var
+ * @return $this
+ */
+ public function setProcesses($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\RunningProcessList::class);
+ $this->processes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Runtime network information (connections, ports).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RuntimeNetworkInfo network = 3;
+ * @return \Google\Cloud\MigrationCenter\V1\RuntimeNetworkInfo|null
+ */
+ public function getNetwork()
+ {
+ return $this->network;
+ }
+
+ public function hasNetwork()
+ {
+ return isset($this->network);
+ }
+
+ public function clearNetwork()
+ {
+ unset($this->network);
+ }
+
+ /**
+ * Runtime network information (connections, ports).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RuntimeNetworkInfo network = 3;
+ * @param \Google\Cloud\MigrationCenter\V1\RuntimeNetworkInfo $var
+ * @return $this
+ */
+ public function setNetwork($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\RuntimeNetworkInfo::class);
+ $this->network = $var;
+
+ return $this;
+ }
+
+ /**
+ * Last time the OS was booted.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp last_boot_time = 4;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getLastBootTime()
+ {
+ return $this->last_boot_time;
+ }
+
+ public function hasLastBootTime()
+ {
+ return isset($this->last_boot_time);
+ }
+
+ public function clearLastBootTime()
+ {
+ unset($this->last_boot_time);
+ }
+
+ /**
+ * Last time the OS was booted.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp last_boot_time = 4;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setLastBootTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->last_boot_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Domain, e.g. c.stratozone-development.internal.
+ *
+ * Generated from protobuf field string domain = 5;
+ * @return string
+ */
+ public function getDomain()
+ {
+ return $this->domain;
+ }
+
+ /**
+ * Domain, e.g. c.stratozone-development.internal.
+ *
+ * Generated from protobuf field string domain = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setDomain($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->domain = $var;
+
+ return $this;
+ }
+
+ /**
+ * Machine name.
+ *
+ * Generated from protobuf field string machine_name = 6;
+ * @return string
+ */
+ public function getMachineName()
+ {
+ return $this->machine_name;
+ }
+
+ /**
+ * Machine name.
+ *
+ * Generated from protobuf field string machine_name = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setMachineName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->machine_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Installed applications information.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GuestInstalledApplicationList installed_apps = 7;
+ * @return \Google\Cloud\MigrationCenter\V1\GuestInstalledApplicationList|null
+ */
+ public function getInstalledApps()
+ {
+ return $this->installed_apps;
+ }
+
+ public function hasInstalledApps()
+ {
+ return isset($this->installed_apps);
+ }
+
+ public function clearInstalledApps()
+ {
+ unset($this->installed_apps);
+ }
+
+ /**
+ * Installed applications information.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GuestInstalledApplicationList installed_apps = 7;
+ * @param \Google\Cloud\MigrationCenter\V1\GuestInstalledApplicationList $var
+ * @return $this
+ */
+ public function setInstalledApps($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\GuestInstalledApplicationList::class);
+ $this->installed_apps = $var;
+
+ return $this;
+ }
+
+ /**
+ * Open files information.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.OpenFileList open_file_list = 8;
+ * @return \Google\Cloud\MigrationCenter\V1\OpenFileList|null
+ */
+ public function getOpenFileList()
+ {
+ return $this->open_file_list;
+ }
+
+ public function hasOpenFileList()
+ {
+ return isset($this->open_file_list);
+ }
+
+ public function clearOpenFileList()
+ {
+ unset($this->open_file_list);
+ }
+
+ /**
+ * Open files information.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.OpenFileList open_file_list = 8;
+ * @param \Google\Cloud\MigrationCenter\V1\OpenFileList $var
+ * @return $this
+ */
+ public function setOpenFileList($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\OpenFileList::class);
+ $this->open_file_list = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/HostsEntry.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/HostsEntry.php
new file mode 100644
index 000000000000..1b1b21b86ead
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/HostsEntry.php
@@ -0,0 +1,101 @@
+google.cloud.migrationcenter.v1.HostsEntry
+ */
+class HostsEntry extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * IP (raw, IPv4/6 agnostic).
+ *
+ * Generated from protobuf field string ip = 1;
+ */
+ protected $ip = '';
+ /**
+ * List of host names / aliases.
+ *
+ * Generated from protobuf field repeated string host_names = 2;
+ */
+ private $host_names;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $ip
+ * IP (raw, IPv4/6 agnostic).
+ * @type array|\Google\Protobuf\Internal\RepeatedField $host_names
+ * List of host names / aliases.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * IP (raw, IPv4/6 agnostic).
+ *
+ * Generated from protobuf field string ip = 1;
+ * @return string
+ */
+ public function getIp()
+ {
+ return $this->ip;
+ }
+
+ /**
+ * IP (raw, IPv4/6 agnostic).
+ *
+ * Generated from protobuf field string ip = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setIp($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->ip = $var;
+
+ return $this;
+ }
+
+ /**
+ * List of host names / aliases.
+ *
+ * Generated from protobuf field repeated string host_names = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getHostNames()
+ {
+ return $this->host_names;
+ }
+
+ /**
+ * List of host names / aliases.
+ *
+ * Generated from protobuf field repeated string host_names = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setHostNames($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->host_names = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/HostsEntryList.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/HostsEntryList.php
new file mode 100644
index 000000000000..95a0f125958f
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/HostsEntryList.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.HostsEntryList
+ */
+class HostsEntryList extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Hosts entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.HostsEntry entries = 1;
+ */
+ private $entries;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\HostsEntry>|\Google\Protobuf\Internal\RepeatedField $entries
+ * Hosts entries.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Hosts entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.HostsEntry entries = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEntries()
+ {
+ return $this->entries;
+ }
+
+ /**
+ * Hosts entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.HostsEntry entries = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\HostsEntry>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEntries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\HostsEntry::class);
+ $this->entries = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportDataFile.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportDataFile.php
new file mode 100644
index 000000000000..18d7f3e10c86
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportDataFile.php
@@ -0,0 +1,255 @@
+google.cloud.migrationcenter.v1.ImportDataFile
+ */
+class ImportDataFile extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The name of the file.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * User-friendly display name. Maximum length is 63 characters.
+ *
+ * Generated from protobuf field string display_name = 6;
+ */
+ protected $display_name = '';
+ /**
+ * Required. The payload format.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJobFormat format = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $format = 0;
+ /**
+ * Output only. The timestamp when the file was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The state of the import data file.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportDataFile.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ protected $file_info;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The name of the file.
+ * @type string $display_name
+ * User-friendly display name. Maximum length is 63 characters.
+ * @type int $format
+ * Required. The payload format.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The timestamp when the file was created.
+ * @type int $state
+ * Output only. The state of the import data file.
+ * @type \Google\Cloud\MigrationCenter\V1\UploadFileInfo $upload_file_info
+ * Information about a file that is uploaded to a storage service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The name of the file.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The name of the file.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * User-friendly display name. Maximum length is 63 characters.
+ *
+ * Generated from protobuf field string display_name = 6;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * User-friendly display name. Maximum length is 63 characters.
+ *
+ * Generated from protobuf field string display_name = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The payload format.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJobFormat format = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getFormat()
+ {
+ return $this->format;
+ }
+
+ /**
+ * Required. The payload format.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJobFormat format = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setFormat($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\ImportJobFormat::class);
+ $this->format = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The timestamp when the file was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The timestamp when the file was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The state of the import data file.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportDataFile.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The state of the import data file.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportDataFile.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\ImportDataFile\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Information about a file that is uploaded to a storage service.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.UploadFileInfo upload_file_info = 5;
+ * @return \Google\Cloud\MigrationCenter\V1\UploadFileInfo|null
+ */
+ public function getUploadFileInfo()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasUploadFileInfo()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Information about a file that is uploaded to a storage service.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.UploadFileInfo upload_file_info = 5;
+ * @param \Google\Cloud\MigrationCenter\V1\UploadFileInfo $var
+ * @return $this
+ */
+ public function setUploadFileInfo($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\UploadFileInfo::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getFileInfo()
+ {
+ return $this->whichOneof("file_info");
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportDataFile/State.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportDataFile/State.php
new file mode 100644
index 000000000000..0a89ef4a4c60
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportDataFile/State.php
@@ -0,0 +1,64 @@
+google.cloud.migrationcenter.v1.ImportDataFile.State
+ */
+class State
+{
+ /**
+ * Default value.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The data file is being created.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * The data file completed initialization.
+ *
+ * Generated from protobuf enum ACTIVE = 2;
+ */
+ const ACTIVE = 2;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::ACTIVE => 'ACTIVE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(State::class, \Google\Cloud\MigrationCenter\V1\ImportDataFile_State::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportError.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportError.php
new file mode 100644
index 000000000000..04a2df954f0c
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportError.php
@@ -0,0 +1,102 @@
+google.cloud.migrationcenter.v1.ImportError
+ */
+class ImportError extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The error information.
+ *
+ * Generated from protobuf field string error_details = 1;
+ */
+ protected $error_details = '';
+ /**
+ * The severity of the error.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportError.Severity severity = 2;
+ */
+ protected $severity = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $error_details
+ * The error information.
+ * @type int $severity
+ * The severity of the error.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The error information.
+ *
+ * Generated from protobuf field string error_details = 1;
+ * @return string
+ */
+ public function getErrorDetails()
+ {
+ return $this->error_details;
+ }
+
+ /**
+ * The error information.
+ *
+ * Generated from protobuf field string error_details = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setErrorDetails($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->error_details = $var;
+
+ return $this;
+ }
+
+ /**
+ * The severity of the error.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportError.Severity severity = 2;
+ * @return int
+ */
+ public function getSeverity()
+ {
+ return $this->severity;
+ }
+
+ /**
+ * The severity of the error.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportError.Severity severity = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setSeverity($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\ImportError\Severity::class);
+ $this->severity = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportError/Severity.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportError/Severity.php
new file mode 100644
index 000000000000..4495bb787812
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportError/Severity.php
@@ -0,0 +1,63 @@
+google.cloud.migrationcenter.v1.ImportError.Severity
+ */
+class Severity
+{
+ /**
+ * Generated from protobuf enum SEVERITY_UNSPECIFIED = 0;
+ */
+ const SEVERITY_UNSPECIFIED = 0;
+ /**
+ * Generated from protobuf enum ERROR = 1;
+ */
+ const ERROR = 1;
+ /**
+ * Generated from protobuf enum WARNING = 2;
+ */
+ const WARNING = 2;
+ /**
+ * Generated from protobuf enum INFO = 3;
+ */
+ const INFO = 3;
+
+ private static $valueToName = [
+ self::SEVERITY_UNSPECIFIED => 'SEVERITY_UNSPECIFIED',
+ self::ERROR => 'ERROR',
+ self::WARNING => 'WARNING',
+ self::INFO => 'INFO',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Severity::class, \Google\Cloud\MigrationCenter\V1\ImportError_Severity::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportJob.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportJob.php
new file mode 100644
index 000000000000..686fb1277d40
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportJob.php
@@ -0,0 +1,410 @@
+google.cloud.migrationcenter.v1.ImportJob
+ */
+class ImportJob extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The full name of the import job.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * User-friendly display name. Maximum length is 63 characters.
+ *
+ * Generated from protobuf field string display_name = 2;
+ */
+ protected $display_name = '';
+ /**
+ * Output only. The timestamp when the import job was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The timestamp when the import job was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * Output only. The timestamp when the import job was completed.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp complete_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $complete_time = null;
+ /**
+ * Output only. The state of the import job.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJob.ImportJobState state = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Labels as key value pairs.
+ *
+ * Generated from protobuf field map labels = 7;
+ */
+ private $labels;
+ /**
+ * Required. Reference to a source.
+ *
+ * Generated from protobuf field string asset_source = 8 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $asset_source = '';
+ protected $report;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The full name of the import job.
+ * @type string $display_name
+ * User-friendly display name. Maximum length is 63 characters.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The timestamp when the import job was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The timestamp when the import job was last updated.
+ * @type \Google\Protobuf\Timestamp $complete_time
+ * Output only. The timestamp when the import job was completed.
+ * @type int $state
+ * Output only. The state of the import job.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Labels as key value pairs.
+ * @type string $asset_source
+ * Required. Reference to a source.
+ * @type \Google\Cloud\MigrationCenter\V1\ValidationReport $validation_report
+ * Output only. The report with the validation results of the import job.
+ * @type \Google\Cloud\MigrationCenter\V1\ExecutionReport $execution_report
+ * Output only. The report with the results of running the import job.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The full name of the import job.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The full name of the import job.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * User-friendly display name. Maximum length is 63 characters.
+ *
+ * Generated from protobuf field string display_name = 2;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * User-friendly display name. Maximum length is 63 characters.
+ *
+ * Generated from protobuf field string display_name = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The timestamp when the import job was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The timestamp when the import job was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The timestamp when the import job was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The timestamp when the import job was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The timestamp when the import job was completed.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp complete_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCompleteTime()
+ {
+ return $this->complete_time;
+ }
+
+ public function hasCompleteTime()
+ {
+ return isset($this->complete_time);
+ }
+
+ public function clearCompleteTime()
+ {
+ unset($this->complete_time);
+ }
+
+ /**
+ * Output only. The timestamp when the import job was completed.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp complete_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCompleteTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->complete_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The state of the import job.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJob.ImportJobState state = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The state of the import job.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJob.ImportJobState state = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\ImportJob\ImportJobState::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Labels as key value pairs.
+ *
+ * Generated from protobuf field map labels = 7;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Labels as key value pairs.
+ *
+ * Generated from protobuf field map labels = 7;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->labels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Required. Reference to a source.
+ *
+ * Generated from protobuf field string asset_source = 8 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getAssetSource()
+ {
+ return $this->asset_source;
+ }
+
+ /**
+ * Required. Reference to a source.
+ *
+ * Generated from protobuf field string asset_source = 8 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setAssetSource($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->asset_source = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The report with the validation results of the import job.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ValidationReport validation_report = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\MigrationCenter\V1\ValidationReport|null
+ */
+ public function getValidationReport()
+ {
+ return $this->readOneof(10);
+ }
+
+ public function hasValidationReport()
+ {
+ return $this->hasOneof(10);
+ }
+
+ /**
+ * Output only. The report with the validation results of the import job.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ValidationReport validation_report = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\MigrationCenter\V1\ValidationReport $var
+ * @return $this
+ */
+ public function setValidationReport($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ValidationReport::class);
+ $this->writeOneof(10, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The report with the results of running the import job.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ExecutionReport execution_report = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\MigrationCenter\V1\ExecutionReport|null
+ */
+ public function getExecutionReport()
+ {
+ return $this->readOneof(11);
+ }
+
+ public function hasExecutionReport()
+ {
+ return $this->hasOneof(11);
+ }
+
+ /**
+ * Output only. The report with the results of running the import job.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ExecutionReport execution_report = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\MigrationCenter\V1\ExecutionReport $var
+ * @return $this
+ */
+ public function setExecutionReport($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ExecutionReport::class);
+ $this->writeOneof(11, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getReport()
+ {
+ return $this->whichOneof("report");
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportJob/ImportJobState.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportJob/ImportJobState.php
new file mode 100644
index 000000000000..f40118238812
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportJob/ImportJobState.php
@@ -0,0 +1,99 @@
+google.cloud.migrationcenter.v1.ImportJob.ImportJobState
+ */
+class ImportJobState
+{
+ /**
+ * Default value.
+ *
+ * Generated from protobuf enum IMPORT_JOB_STATE_UNSPECIFIED = 0;
+ */
+ const IMPORT_JOB_STATE_UNSPECIFIED = 0;
+ /**
+ * The import job is pending.
+ *
+ * Generated from protobuf enum IMPORT_JOB_STATE_PENDING = 1;
+ */
+ const IMPORT_JOB_STATE_PENDING = 1;
+ /**
+ * The processing of the import job is ongoing.
+ *
+ * Generated from protobuf enum IMPORT_JOB_STATE_RUNNING = 2;
+ */
+ const IMPORT_JOB_STATE_RUNNING = 2;
+ /**
+ * The import job processing has completed.
+ *
+ * Generated from protobuf enum IMPORT_JOB_STATE_COMPLETED = 3;
+ */
+ const IMPORT_JOB_STATE_COMPLETED = 3;
+ /**
+ * The import job failed to be processed.
+ *
+ * Generated from protobuf enum IMPORT_JOB_STATE_FAILED = 4;
+ */
+ const IMPORT_JOB_STATE_FAILED = 4;
+ /**
+ * The import job is being validated.
+ *
+ * Generated from protobuf enum IMPORT_JOB_STATE_VALIDATING = 5;
+ */
+ const IMPORT_JOB_STATE_VALIDATING = 5;
+ /**
+ * The import job contains blocking errors.
+ *
+ * Generated from protobuf enum IMPORT_JOB_STATE_FAILED_VALIDATION = 6;
+ */
+ const IMPORT_JOB_STATE_FAILED_VALIDATION = 6;
+ /**
+ * The validation of the job completed with no blocking errors.
+ *
+ * Generated from protobuf enum IMPORT_JOB_STATE_READY = 7;
+ */
+ const IMPORT_JOB_STATE_READY = 7;
+
+ private static $valueToName = [
+ self::IMPORT_JOB_STATE_UNSPECIFIED => 'IMPORT_JOB_STATE_UNSPECIFIED',
+ self::IMPORT_JOB_STATE_PENDING => 'IMPORT_JOB_STATE_PENDING',
+ self::IMPORT_JOB_STATE_RUNNING => 'IMPORT_JOB_STATE_RUNNING',
+ self::IMPORT_JOB_STATE_COMPLETED => 'IMPORT_JOB_STATE_COMPLETED',
+ self::IMPORT_JOB_STATE_FAILED => 'IMPORT_JOB_STATE_FAILED',
+ self::IMPORT_JOB_STATE_VALIDATING => 'IMPORT_JOB_STATE_VALIDATING',
+ self::IMPORT_JOB_STATE_FAILED_VALIDATION => 'IMPORT_JOB_STATE_FAILED_VALIDATION',
+ self::IMPORT_JOB_STATE_READY => 'IMPORT_JOB_STATE_READY',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ImportJobState::class, \Google\Cloud\MigrationCenter\V1\ImportJob_ImportJobState::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportJobFormat.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportJobFormat.php
new file mode 100644
index 000000000000..7243bd1d17dc
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportJobFormat.php
@@ -0,0 +1,88 @@
+google.cloud.migrationcenter.v1.ImportJobFormat
+ */
+class ImportJobFormat
+{
+ /**
+ * Default value.
+ *
+ * Generated from protobuf enum IMPORT_JOB_FORMAT_UNSPECIFIED = 0;
+ */
+ const IMPORT_JOB_FORMAT_UNSPECIFIED = 0;
+ /**
+ * RVTools format (XLSX).
+ *
+ * Generated from protobuf enum IMPORT_JOB_FORMAT_RVTOOLS_XLSX = 1;
+ */
+ const IMPORT_JOB_FORMAT_RVTOOLS_XLSX = 1;
+ /**
+ * RVTools format (CSV).
+ *
+ * Generated from protobuf enum IMPORT_JOB_FORMAT_RVTOOLS_CSV = 2;
+ */
+ const IMPORT_JOB_FORMAT_RVTOOLS_CSV = 2;
+ /**
+ * CSV format exported from AWS using the
+ * [AWS collection
+ * script][https://github.com/GoogleCloudPlatform/aws-to-stratozone-export].
+ *
+ * Generated from protobuf enum IMPORT_JOB_FORMAT_EXPORTED_AWS_CSV = 4;
+ */
+ const IMPORT_JOB_FORMAT_EXPORTED_AWS_CSV = 4;
+ /**
+ * CSV format exported from Azure using the
+ * [Azure collection
+ * script][https://github.com/GoogleCloudPlatform/azure-to-stratozone-export].
+ *
+ * Generated from protobuf enum IMPORT_JOB_FORMAT_EXPORTED_AZURE_CSV = 5;
+ */
+ const IMPORT_JOB_FORMAT_EXPORTED_AZURE_CSV = 5;
+ /**
+ * CSV format created manually and following the StratoZone format. For more
+ * information, see [Manually create and upload data
+ * tables][https://cloud.google.com/migrate/stratozone/docs/import-data-portal].
+ *
+ * Generated from protobuf enum IMPORT_JOB_FORMAT_STRATOZONE_CSV = 6;
+ */
+ const IMPORT_JOB_FORMAT_STRATOZONE_CSV = 6;
+
+ private static $valueToName = [
+ self::IMPORT_JOB_FORMAT_UNSPECIFIED => 'IMPORT_JOB_FORMAT_UNSPECIFIED',
+ self::IMPORT_JOB_FORMAT_RVTOOLS_XLSX => 'IMPORT_JOB_FORMAT_RVTOOLS_XLSX',
+ self::IMPORT_JOB_FORMAT_RVTOOLS_CSV => 'IMPORT_JOB_FORMAT_RVTOOLS_CSV',
+ self::IMPORT_JOB_FORMAT_EXPORTED_AWS_CSV => 'IMPORT_JOB_FORMAT_EXPORTED_AWS_CSV',
+ self::IMPORT_JOB_FORMAT_EXPORTED_AZURE_CSV => 'IMPORT_JOB_FORMAT_EXPORTED_AZURE_CSV',
+ self::IMPORT_JOB_FORMAT_STRATOZONE_CSV => 'IMPORT_JOB_FORMAT_STRATOZONE_CSV',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportJobView.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportJobView.php
new file mode 100644
index 000000000000..b203f8c4cb41
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportJobView.php
@@ -0,0 +1,64 @@
+google.cloud.migrationcenter.v1.ImportJobView
+ */
+class ImportJobView
+{
+ /**
+ * The import job view is not specified. The API displays the basic view by
+ * default.
+ *
+ * Generated from protobuf enum IMPORT_JOB_VIEW_UNSPECIFIED = 0;
+ */
+ const IMPORT_JOB_VIEW_UNSPECIFIED = 0;
+ /**
+ * The import job view includes basic metadata of an import job.
+ * This view does not include payload information.
+ *
+ * Generated from protobuf enum IMPORT_JOB_VIEW_BASIC = 1;
+ */
+ const IMPORT_JOB_VIEW_BASIC = 1;
+ /**
+ * The import job view includes all metadata of an import job.
+ *
+ * Generated from protobuf enum IMPORT_JOB_VIEW_FULL = 2;
+ */
+ const IMPORT_JOB_VIEW_FULL = 2;
+
+ private static $valueToName = [
+ self::IMPORT_JOB_VIEW_UNSPECIFIED => 'IMPORT_JOB_VIEW_UNSPECIFIED',
+ self::IMPORT_JOB_VIEW_BASIC => 'IMPORT_JOB_VIEW_BASIC',
+ self::IMPORT_JOB_VIEW_FULL => 'IMPORT_JOB_VIEW_FULL',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportRowError.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportRowError.php
new file mode 100644
index 000000000000..25d5131c0196
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ImportRowError.php
@@ -0,0 +1,174 @@
+google.cloud.migrationcenter.v1.ImportRowError
+ */
+class ImportRowError extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The row number where the error was detected.
+ *
+ * Generated from protobuf field int32 row_number = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $row_number = 0;
+ /**
+ * The name of the VM in the row.
+ *
+ * Generated from protobuf field string vm_name = 2;
+ */
+ protected $vm_name = '';
+ /**
+ * The VM UUID.
+ *
+ * Generated from protobuf field string vm_uuid = 3;
+ */
+ protected $vm_uuid = '';
+ /**
+ * The list of errors detected in the row.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportError errors = 4;
+ */
+ private $errors;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $row_number
+ * The row number where the error was detected.
+ * @type string $vm_name
+ * The name of the VM in the row.
+ * @type string $vm_uuid
+ * The VM UUID.
+ * @type array<\Google\Cloud\MigrationCenter\V1\ImportError>|\Google\Protobuf\Internal\RepeatedField $errors
+ * The list of errors detected in the row.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The row number where the error was detected.
+ *
+ * Generated from protobuf field int32 row_number = 1 [deprecated = true];
+ * @return int
+ * @deprecated
+ */
+ public function getRowNumber()
+ {
+ @trigger_error('row_number is deprecated.', E_USER_DEPRECATED);
+ return $this->row_number;
+ }
+
+ /**
+ * The row number where the error was detected.
+ *
+ * Generated from protobuf field int32 row_number = 1 [deprecated = true];
+ * @param int $var
+ * @return $this
+ * @deprecated
+ */
+ public function setRowNumber($var)
+ {
+ @trigger_error('row_number is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkInt32($var);
+ $this->row_number = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the VM in the row.
+ *
+ * Generated from protobuf field string vm_name = 2;
+ * @return string
+ */
+ public function getVmName()
+ {
+ return $this->vm_name;
+ }
+
+ /**
+ * The name of the VM in the row.
+ *
+ * Generated from protobuf field string vm_name = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setVmName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->vm_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The VM UUID.
+ *
+ * Generated from protobuf field string vm_uuid = 3;
+ * @return string
+ */
+ public function getVmUuid()
+ {
+ return $this->vm_uuid;
+ }
+
+ /**
+ * The VM UUID.
+ *
+ * Generated from protobuf field string vm_uuid = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setVmUuid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->vm_uuid = $var;
+
+ return $this;
+ }
+
+ /**
+ * The list of errors detected in the row.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportError errors = 4;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getErrors()
+ {
+ return $this->errors;
+ }
+
+ /**
+ * The list of errors detected in the row.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportError errors = 4;
+ * @param array<\Google\Cloud\MigrationCenter\V1\ImportError>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setErrors($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ImportError::class);
+ $this->errors = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Insight.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Insight.php
new file mode 100644
index 000000000000..990ef8436af2
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Insight.php
@@ -0,0 +1,108 @@
+google.cloud.migrationcenter.v1.Insight
+ */
+class Insight extends \Google\Protobuf\Internal\Message
+{
+ protected $insight;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MigrationCenter\V1\MigrationInsight $migration_insight
+ * Output only. An insight about potential migrations for an asset.
+ * @type \Google\Cloud\MigrationCenter\V1\GenericInsight $generic_insight
+ * Output only. A generic insight about an asset
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. An insight about potential migrations for an asset.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MigrationInsight migration_insight = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\MigrationCenter\V1\MigrationInsight|null
+ */
+ public function getMigrationInsight()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasMigrationInsight()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Output only. An insight about potential migrations for an asset.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MigrationInsight migration_insight = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\MigrationCenter\V1\MigrationInsight $var
+ * @return $this
+ */
+ public function setMigrationInsight($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\MigrationInsight::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. A generic insight about an asset
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GenericInsight generic_insight = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\MigrationCenter\V1\GenericInsight|null
+ */
+ public function getGenericInsight()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasGenericInsight()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Output only. A generic insight about an asset
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GenericInsight generic_insight = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\MigrationCenter\V1\GenericInsight $var
+ * @return $this
+ */
+ public function setGenericInsight($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\GenericInsight::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getInsight()
+ {
+ return $this->whichOneof("insight");
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/InsightList.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/InsightList.php
new file mode 100644
index 000000000000..ecaa4573249f
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/InsightList.php
@@ -0,0 +1,111 @@
+google.cloud.migrationcenter.v1.InsightList
+ */
+class InsightList extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Insights of the list.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Insight insights = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $insights;
+ /**
+ * Output only. Update timestamp.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\Insight>|\Google\Protobuf\Internal\RepeatedField $insights
+ * Output only. Insights of the list.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. Update timestamp.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Insights of the list.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Insight insights = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getInsights()
+ {
+ return $this->insights;
+ }
+
+ /**
+ * Output only. Insights of the list.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Insight insights = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\MigrationCenter\V1\Insight>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setInsights($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\Insight::class);
+ $this->insights = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Update timestamp.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. Update timestamp.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/LicenseType.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/LicenseType.php
new file mode 100644
index 000000000000..695c1cc788ec
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/LicenseType.php
@@ -0,0 +1,63 @@
+google.cloud.migrationcenter.v1.LicenseType
+ */
+class LicenseType
+{
+ /**
+ * Unspecified (default value).
+ *
+ * Generated from protobuf enum LICENSE_TYPE_UNSPECIFIED = 0;
+ */
+ const LICENSE_TYPE_UNSPECIFIED = 0;
+ /**
+ * Default Google Cloud licensing plan. Licensing is charged per usage.
+ * This a good value to start with.
+ *
+ * Generated from protobuf enum LICENSE_TYPE_DEFAULT = 1;
+ */
+ const LICENSE_TYPE_DEFAULT = 1;
+ /**
+ * Bring-your-own-license (BYOL) plan. User provides the OS license.
+ *
+ * Generated from protobuf enum LICENSE_TYPE_BRING_YOUR_OWN_LICENSE = 2;
+ */
+ const LICENSE_TYPE_BRING_YOUR_OWN_LICENSE = 2;
+
+ private static $valueToName = [
+ self::LICENSE_TYPE_UNSPECIFIED => 'LICENSE_TYPE_UNSPECIFIED',
+ self::LICENSE_TYPE_DEFAULT => 'LICENSE_TYPE_DEFAULT',
+ self::LICENSE_TYPE_BRING_YOUR_OWN_LICENSE => 'LICENSE_TYPE_BRING_YOUR_OWN_LICENSE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListAssetsRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListAssetsRequest.php
new file mode 100644
index 000000000000..2270d9571d64
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListAssetsRequest.php
@@ -0,0 +1,255 @@
+google.cloud.migrationcenter.v1.ListAssetsRequest
+ */
+class ListAssetsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for `ListAssetsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ */
+ protected $filter = '';
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ */
+ protected $order_by = '';
+ /**
+ * View of the assets. Defaults to BASIC.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetView view = 6;
+ */
+ protected $view = 0;
+
+ /**
+ * @param string $parent Required. Parent value for `ListAssetsRequest`. Please see
+ * {@see MigrationCenterClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\ListAssetsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for `ListAssetsRequest`.
+ * @type int $page_size
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ * @type string $page_token
+ * A token identifying a page of results the server should return.
+ * @type string $filter
+ * Filtering results.
+ * @type string $order_by
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ * @type int $view
+ * View of the assets. Defaults to BASIC.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for `ListAssetsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for `ListAssetsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+ /**
+ * View of the assets. Defaults to BASIC.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetView view = 6;
+ * @return int
+ */
+ public function getView()
+ {
+ return $this->view;
+ }
+
+ /**
+ * View of the assets. Defaults to BASIC.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetView view = 6;
+ * @param int $var
+ * @return $this
+ */
+ public function setView($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\AssetView::class);
+ $this->view = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListAssetsResponse.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListAssetsResponse.php
new file mode 100644
index 000000000000..747c8939c0a2
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListAssetsResponse.php
@@ -0,0 +1,135 @@
+google.cloud.migrationcenter.v1.ListAssetsResponse
+ */
+class ListAssetsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of assets.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Asset assets = 1;
+ */
+ private $assets;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\Asset>|\Google\Protobuf\Internal\RepeatedField $assets
+ * A list of assets.
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of assets.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Asset assets = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAssets()
+ {
+ return $this->assets;
+ }
+
+ /**
+ * A list of assets.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Asset assets = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\Asset>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAssets($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\Asset::class);
+ $this->assets = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListErrorFramesRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListErrorFramesRequest.php
new file mode 100644
index 000000000000..d6553b985f6c
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListErrorFramesRequest.php
@@ -0,0 +1,191 @@
+google.cloud.migrationcenter.v1.ListErrorFramesRequest
+ */
+class ListErrorFramesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value (the source) for `ListErrorFramesRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Optional. An optional view mode to control the level of details of each
+ * error frame. The default is a BASIC frame view.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ErrorFrameView view = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $view = 0;
+
+ /**
+ * @param string $parent Required. Parent value (the source) for `ListErrorFramesRequest`. Please see
+ * {@see MigrationCenterClient::sourceName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\ListErrorFramesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value (the source) for `ListErrorFramesRequest`.
+ * @type int $page_size
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ * @type string $page_token
+ * A token identifying a page of results the server should return.
+ * @type int $view
+ * Optional. An optional view mode to control the level of details of each
+ * error frame. The default is a BASIC frame view.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value (the source) for `ListErrorFramesRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value (the source) for `ListErrorFramesRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional view mode to control the level of details of each
+ * error frame. The default is a BASIC frame view.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ErrorFrameView view = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getView()
+ {
+ return $this->view;
+ }
+
+ /**
+ * Optional. An optional view mode to control the level of details of each
+ * error frame. The default is a BASIC frame view.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ErrorFrameView view = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setView($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\ErrorFrameView::class);
+ $this->view = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListErrorFramesResponse.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListErrorFramesResponse.php
new file mode 100644
index 000000000000..a01575621bc4
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListErrorFramesResponse.php
@@ -0,0 +1,135 @@
+google.cloud.migrationcenter.v1.ListErrorFramesResponse
+ */
+class ListErrorFramesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of error frames.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ErrorFrame error_frames = 1;
+ */
+ private $error_frames;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\ErrorFrame>|\Google\Protobuf\Internal\RepeatedField $error_frames
+ * The list of error frames.
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of error frames.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ErrorFrame error_frames = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getErrorFrames()
+ {
+ return $this->error_frames;
+ }
+
+ /**
+ * The list of error frames.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ErrorFrame error_frames = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\ErrorFrame>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setErrorFrames($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ErrorFrame::class);
+ $this->error_frames = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListGroupsRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListGroupsRequest.php
new file mode 100644
index 000000000000..609ab9c2c0c8
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListGroupsRequest.php
@@ -0,0 +1,221 @@
+google.cloud.migrationcenter.v1.ListGroupsRequest
+ */
+class ListGroupsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for `ListGroupsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ */
+ protected $filter = '';
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. Parent value for `ListGroupsRequest`. Please see
+ * {@see MigrationCenterClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\ListGroupsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for `ListGroupsRequest`.
+ * @type int $page_size
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ * @type string $page_token
+ * A token identifying a page of results the server should return.
+ * @type string $filter
+ * Filtering results.
+ * @type string $order_by
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for `ListGroupsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for `ListGroupsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListGroupsResponse.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListGroupsResponse.php
new file mode 100644
index 000000000000..433533778676
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListGroupsResponse.php
@@ -0,0 +1,135 @@
+google.cloud.migrationcenter.v1.ListGroupsResponse
+ */
+class ListGroupsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of Group
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Group groups = 1;
+ */
+ private $groups;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\Group>|\Google\Protobuf\Internal\RepeatedField $groups
+ * The list of Group
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of Group
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Group groups = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getGroups()
+ {
+ return $this->groups;
+ }
+
+ /**
+ * The list of Group
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Group groups = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\Group>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setGroups($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\Group::class);
+ $this->groups = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListImportDataFilesRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListImportDataFilesRequest.php
new file mode 100644
index 000000000000..658157f3a3f3
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListImportDataFilesRequest.php
@@ -0,0 +1,241 @@
+google.cloud.migrationcenter.v1.ListImportDataFilesRequest
+ */
+class ListImportDataFilesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the parent of the `ImportDataFiles` resource.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of data files to return. The service may return
+ * fewer than this value. If unspecified, at most 500 data files will be
+ * returned. The maximum value is 1000; values above 1000 will be coerced to
+ * 1000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * A page token, received from a previous `ListImportDataFiles` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListImportDataFiles`
+ * must match the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ */
+ protected $filter = '';
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. Name of the parent of the `ImportDataFiles` resource. Please see
+ * {@see MigrationCenterClient::importJobName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\ListImportDataFilesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Name of the parent of the `ImportDataFiles` resource.
+ * @type int $page_size
+ * The maximum number of data files to return. The service may return
+ * fewer than this value. If unspecified, at most 500 data files will be
+ * returned. The maximum value is 1000; values above 1000 will be coerced to
+ * 1000.
+ * @type string $page_token
+ * A page token, received from a previous `ListImportDataFiles` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListImportDataFiles`
+ * must match the call that provided the page token.
+ * @type string $filter
+ * Filtering results.
+ * @type string $order_by
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the parent of the `ImportDataFiles` resource.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Name of the parent of the `ImportDataFiles` resource.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of data files to return. The service may return
+ * fewer than this value. If unspecified, at most 500 data files will be
+ * returned. The maximum value is 1000; values above 1000 will be coerced to
+ * 1000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of data files to return. The service may return
+ * fewer than this value. If unspecified, at most 500 data files will be
+ * returned. The maximum value is 1000; values above 1000 will be coerced to
+ * 1000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * A page token, received from a previous `ListImportDataFiles` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListImportDataFiles`
+ * must match the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * A page token, received from a previous `ListImportDataFiles` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListImportDataFiles`
+ * must match the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListImportDataFilesResponse.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListImportDataFilesResponse.php
new file mode 100644
index 000000000000..47bdd308d3e4
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListImportDataFilesResponse.php
@@ -0,0 +1,139 @@
+google.cloud.migrationcenter.v1.ListImportDataFilesResponse
+ */
+class ListImportDataFilesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of import data files.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportDataFile import_data_files = 1;
+ */
+ private $import_data_files;
+ /**
+ * A token that can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\ImportDataFile>|\Google\Protobuf\Internal\RepeatedField $import_data_files
+ * The list of import data files.
+ * @type string $next_page_token
+ * A token that can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of import data files.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportDataFile import_data_files = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getImportDataFiles()
+ {
+ return $this->import_data_files;
+ }
+
+ /**
+ * The list of import data files.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportDataFile import_data_files = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\ImportDataFile>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setImportDataFiles($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ImportDataFile::class);
+ $this->import_data_files = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token that can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token that can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListImportJobsRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListImportJobsRequest.php
new file mode 100644
index 000000000000..8dd59bea8a89
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListImportJobsRequest.php
@@ -0,0 +1,259 @@
+google.cloud.migrationcenter.v1.ListImportJobsRequest
+ */
+class ListImportJobsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for `ListImportJobsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ */
+ protected $filter = '';
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ */
+ protected $order_by = '';
+ /**
+ * Optional. The level of details of each import job.
+ * Default value is BASIC.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJobView view = 6 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $view = 0;
+
+ /**
+ * @param string $parent Required. Parent value for `ListImportJobsRequest`. Please see
+ * {@see MigrationCenterClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\ListImportJobsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for `ListImportJobsRequest`.
+ * @type int $page_size
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ * @type string $page_token
+ * A token identifying a page of results the server should return.
+ * @type string $filter
+ * Filtering results.
+ * @type string $order_by
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ * @type int $view
+ * Optional. The level of details of each import job.
+ * Default value is BASIC.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for `ListImportJobsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for `ListImportJobsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The level of details of each import job.
+ * Default value is BASIC.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJobView view = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getView()
+ {
+ return $this->view;
+ }
+
+ /**
+ * Optional. The level of details of each import job.
+ * Default value is BASIC.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJobView view = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setView($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\ImportJobView::class);
+ $this->view = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListImportJobsResponse.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListImportJobsResponse.php
new file mode 100644
index 000000000000..42c57493d293
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListImportJobsResponse.php
@@ -0,0 +1,135 @@
+google.cloud.migrationcenter.v1.ListImportJobsResponse
+ */
+class ListImportJobsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of import jobs.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportJob import_jobs = 1;
+ */
+ private $import_jobs;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\ImportJob>|\Google\Protobuf\Internal\RepeatedField $import_jobs
+ * The list of import jobs.
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of import jobs.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportJob import_jobs = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getImportJobs()
+ {
+ return $this->import_jobs;
+ }
+
+ /**
+ * The list of import jobs.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportJob import_jobs = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\ImportJob>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setImportJobs($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ImportJob::class);
+ $this->import_jobs = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListPreferenceSetsRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListPreferenceSetsRequest.php
new file mode 100644
index 000000000000..9a4713babe01
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListPreferenceSetsRequest.php
@@ -0,0 +1,191 @@
+google.cloud.migrationcenter.v1.ListPreferenceSetsRequest
+ */
+class ListPreferenceSetsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for `ListPreferenceSetsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, at most 500 preference sets will be returned.
+ * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. Parent value for `ListPreferenceSetsRequest`. Please see
+ * {@see MigrationCenterClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\ListPreferenceSetsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for `ListPreferenceSetsRequest`.
+ * @type int $page_size
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, at most 500 preference sets will be returned.
+ * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ * @type string $page_token
+ * A token identifying a page of results the server should return.
+ * @type string $order_by
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for `ListPreferenceSetsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for `ListPreferenceSetsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, at most 500 preference sets will be returned.
+ * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, at most 500 preference sets will be returned.
+ * The maximum value is 1000; values above 1000 will be coerced to 1000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListPreferenceSetsResponse.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListPreferenceSetsResponse.php
new file mode 100644
index 000000000000..9066e61fbad0
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListPreferenceSetsResponse.php
@@ -0,0 +1,135 @@
+google.cloud.migrationcenter.v1.ListPreferenceSetsResponse
+ */
+class ListPreferenceSetsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of PreferenceSets
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.PreferenceSet preference_sets = 1;
+ */
+ private $preference_sets;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\PreferenceSet>|\Google\Protobuf\Internal\RepeatedField $preference_sets
+ * The list of PreferenceSets
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of PreferenceSets
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.PreferenceSet preference_sets = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPreferenceSets()
+ {
+ return $this->preference_sets;
+ }
+
+ /**
+ * The list of PreferenceSets
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.PreferenceSet preference_sets = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\PreferenceSet>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPreferenceSets($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\PreferenceSet::class);
+ $this->preference_sets = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListReportConfigsRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListReportConfigsRequest.php
new file mode 100644
index 000000000000..f0736d1ae9fa
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListReportConfigsRequest.php
@@ -0,0 +1,221 @@
+google.cloud.migrationcenter.v1.ListReportConfigsRequest
+ */
+class ListReportConfigsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for `ListReportConfigsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ */
+ protected $filter = '';
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. Parent value for `ListReportConfigsRequest`. Please see
+ * {@see MigrationCenterClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\ListReportConfigsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for `ListReportConfigsRequest`.
+ * @type int $page_size
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ * @type string $page_token
+ * A token identifying a page of results the server should return.
+ * @type string $filter
+ * Filtering results.
+ * @type string $order_by
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for `ListReportConfigsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for `ListReportConfigsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListReportConfigsResponse.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListReportConfigsResponse.php
new file mode 100644
index 000000000000..262c7dfa22bd
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListReportConfigsResponse.php
@@ -0,0 +1,135 @@
+google.cloud.migrationcenter.v1.ListReportConfigsResponse
+ */
+class ListReportConfigsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of report configs.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportConfig report_configs = 1;
+ */
+ private $report_configs;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\ReportConfig>|\Google\Protobuf\Internal\RepeatedField $report_configs
+ * A list of report configs.
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of report configs.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportConfig report_configs = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getReportConfigs()
+ {
+ return $this->report_configs;
+ }
+
+ /**
+ * A list of report configs.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportConfig report_configs = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\ReportConfig>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setReportConfigs($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ReportConfig::class);
+ $this->report_configs = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListReportsRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListReportsRequest.php
new file mode 100644
index 000000000000..85c5b136e30b
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListReportsRequest.php
@@ -0,0 +1,255 @@
+google.cloud.migrationcenter.v1.ListReportsRequest
+ */
+class ListReportsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for `ListReportsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Requested page size. The server may return fewer items than requested.
+ * If unspecified, the server will pick an appropriate default value.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * A token identifying a page of results that the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ */
+ protected $filter = '';
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ */
+ protected $order_by = '';
+ /**
+ * Determines what information to retrieve for each Report.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportView view = 6;
+ */
+ protected $view = 0;
+
+ /**
+ * @param string $parent Required. Parent value for `ListReportsRequest`. Please see
+ * {@see MigrationCenterClient::reportConfigName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\ListReportsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for `ListReportsRequest`.
+ * @type int $page_size
+ * Requested page size. The server may return fewer items than requested.
+ * If unspecified, the server will pick an appropriate default value.
+ * @type string $page_token
+ * A token identifying a page of results that the server should return.
+ * @type string $filter
+ * Filtering results.
+ * @type string $order_by
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ * @type int $view
+ * Determines what information to retrieve for each Report.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for `ListReportsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for `ListReportsRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Requested page size. The server may return fewer items than requested.
+ * If unspecified, the server will pick an appropriate default value.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Requested page size. The server may return fewer items than requested.
+ * If unspecified, the server will pick an appropriate default value.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results that the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * A token identifying a page of results that the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+ /**
+ * Determines what information to retrieve for each Report.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportView view = 6;
+ * @return int
+ */
+ public function getView()
+ {
+ return $this->view;
+ }
+
+ /**
+ * Determines what information to retrieve for each Report.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportView view = 6;
+ * @param int $var
+ * @return $this
+ */
+ public function setView($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\ReportView::class);
+ $this->view = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListReportsResponse.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListReportsResponse.php
new file mode 100644
index 000000000000..7b0da1132933
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListReportsResponse.php
@@ -0,0 +1,135 @@
+google.cloud.migrationcenter.v1.ListReportsResponse
+ */
+class ListReportsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of Reports.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Report reports = 1;
+ */
+ private $reports;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\Report>|\Google\Protobuf\Internal\RepeatedField $reports
+ * The list of Reports.
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of Reports.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Report reports = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getReports()
+ {
+ return $this->reports;
+ }
+
+ /**
+ * The list of Reports.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Report reports = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\Report>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setReports($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\Report::class);
+ $this->reports = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListSourcesRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListSourcesRequest.php
new file mode 100644
index 000000000000..25b0f1dd0ca6
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListSourcesRequest.php
@@ -0,0 +1,221 @@
+google.cloud.migrationcenter.v1.ListSourcesRequest
+ */
+class ListSourcesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for `ListSourcesRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Requested page size. The server may return fewer items than requested.
+ * If unspecified, the server will pick an appropriate default value.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * A token identifying a page of results that the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ */
+ protected $filter = '';
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. Parent value for `ListSourcesRequest`. Please see
+ * {@see MigrationCenterClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\ListSourcesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for `ListSourcesRequest`.
+ * @type int $page_size
+ * Requested page size. The server may return fewer items than requested.
+ * If unspecified, the server will pick an appropriate default value.
+ * @type string $page_token
+ * A token identifying a page of results that the server should return.
+ * @type string $filter
+ * Filtering results.
+ * @type string $order_by
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for `ListSourcesRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for `ListSourcesRequest`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Requested page size. The server may return fewer items than requested.
+ * If unspecified, the server will pick an appropriate default value.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Requested page size. The server may return fewer items than requested.
+ * If unspecified, the server will pick an appropriate default value.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results that the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * A token identifying a page of results that the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Filtering results.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListSourcesResponse.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListSourcesResponse.php
new file mode 100644
index 000000000000..1e4b1dbaaff8
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ListSourcesResponse.php
@@ -0,0 +1,135 @@
+google.cloud.migrationcenter.v1.ListSourcesResponse
+ */
+class ListSourcesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of sources.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Source sources = 1;
+ */
+ private $sources;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\Source>|\Google\Protobuf\Internal\RepeatedField $sources
+ * The list of sources.
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of sources.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Source sources = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSources()
+ {
+ return $this->sources;
+ }
+
+ /**
+ * The list of sources.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.Source sources = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\Source>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSources($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\Source::class);
+ $this->sources = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineArchitectureDetails.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineArchitectureDetails.php
new file mode 100644
index 000000000000..45790ac59bd9
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineArchitectureDetails.php
@@ -0,0 +1,315 @@
+google.cloud.migrationcenter.v1.MachineArchitectureDetails
+ */
+class MachineArchitectureDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * CPU architecture, e.g., "x64-based PC", "x86_64", "i686" etc.
+ *
+ * Generated from protobuf field string cpu_architecture = 1;
+ */
+ protected $cpu_architecture = '';
+ /**
+ * CPU name, e.g., "Intel Xeon E5-2690", "AMD EPYC 7571" etc.
+ *
+ * Generated from protobuf field string cpu_name = 2;
+ */
+ protected $cpu_name = '';
+ /**
+ * Hardware vendor.
+ *
+ * Generated from protobuf field string vendor = 3;
+ */
+ protected $vendor = '';
+ /**
+ * Number of CPU threads allocated to the machine.
+ *
+ * Generated from protobuf field int32 cpu_thread_count = 4;
+ */
+ protected $cpu_thread_count = 0;
+ /**
+ * Number of processor sockets allocated to the machine.
+ *
+ * Generated from protobuf field int32 cpu_socket_count = 5;
+ */
+ protected $cpu_socket_count = 0;
+ /**
+ * BIOS Details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.BiosDetails bios = 6;
+ */
+ protected $bios = null;
+ /**
+ * Firmware type.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineArchitectureDetails.FirmwareType firmware_type = 7;
+ */
+ protected $firmware_type = 0;
+ /**
+ * CPU hyper-threading support.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineArchitectureDetails.CpuHyperThreading hyperthreading = 8;
+ */
+ protected $hyperthreading = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $cpu_architecture
+ * CPU architecture, e.g., "x64-based PC", "x86_64", "i686" etc.
+ * @type string $cpu_name
+ * CPU name, e.g., "Intel Xeon E5-2690", "AMD EPYC 7571" etc.
+ * @type string $vendor
+ * Hardware vendor.
+ * @type int $cpu_thread_count
+ * Number of CPU threads allocated to the machine.
+ * @type int $cpu_socket_count
+ * Number of processor sockets allocated to the machine.
+ * @type \Google\Cloud\MigrationCenter\V1\BiosDetails $bios
+ * BIOS Details.
+ * @type int $firmware_type
+ * Firmware type.
+ * @type int $hyperthreading
+ * CPU hyper-threading support.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * CPU architecture, e.g., "x64-based PC", "x86_64", "i686" etc.
+ *
+ * Generated from protobuf field string cpu_architecture = 1;
+ * @return string
+ */
+ public function getCpuArchitecture()
+ {
+ return $this->cpu_architecture;
+ }
+
+ /**
+ * CPU architecture, e.g., "x64-based PC", "x86_64", "i686" etc.
+ *
+ * Generated from protobuf field string cpu_architecture = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setCpuArchitecture($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cpu_architecture = $var;
+
+ return $this;
+ }
+
+ /**
+ * CPU name, e.g., "Intel Xeon E5-2690", "AMD EPYC 7571" etc.
+ *
+ * Generated from protobuf field string cpu_name = 2;
+ * @return string
+ */
+ public function getCpuName()
+ {
+ return $this->cpu_name;
+ }
+
+ /**
+ * CPU name, e.g., "Intel Xeon E5-2690", "AMD EPYC 7571" etc.
+ *
+ * Generated from protobuf field string cpu_name = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setCpuName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cpu_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Hardware vendor.
+ *
+ * Generated from protobuf field string vendor = 3;
+ * @return string
+ */
+ public function getVendor()
+ {
+ return $this->vendor;
+ }
+
+ /**
+ * Hardware vendor.
+ *
+ * Generated from protobuf field string vendor = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setVendor($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->vendor = $var;
+
+ return $this;
+ }
+
+ /**
+ * Number of CPU threads allocated to the machine.
+ *
+ * Generated from protobuf field int32 cpu_thread_count = 4;
+ * @return int
+ */
+ public function getCpuThreadCount()
+ {
+ return $this->cpu_thread_count;
+ }
+
+ /**
+ * Number of CPU threads allocated to the machine.
+ *
+ * Generated from protobuf field int32 cpu_thread_count = 4;
+ * @param int $var
+ * @return $this
+ */
+ public function setCpuThreadCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->cpu_thread_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Number of processor sockets allocated to the machine.
+ *
+ * Generated from protobuf field int32 cpu_socket_count = 5;
+ * @return int
+ */
+ public function getCpuSocketCount()
+ {
+ return $this->cpu_socket_count;
+ }
+
+ /**
+ * Number of processor sockets allocated to the machine.
+ *
+ * Generated from protobuf field int32 cpu_socket_count = 5;
+ * @param int $var
+ * @return $this
+ */
+ public function setCpuSocketCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->cpu_socket_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * BIOS Details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.BiosDetails bios = 6;
+ * @return \Google\Cloud\MigrationCenter\V1\BiosDetails|null
+ */
+ public function getBios()
+ {
+ return $this->bios;
+ }
+
+ public function hasBios()
+ {
+ return isset($this->bios);
+ }
+
+ public function clearBios()
+ {
+ unset($this->bios);
+ }
+
+ /**
+ * BIOS Details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.BiosDetails bios = 6;
+ * @param \Google\Cloud\MigrationCenter\V1\BiosDetails $var
+ * @return $this
+ */
+ public function setBios($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\BiosDetails::class);
+ $this->bios = $var;
+
+ return $this;
+ }
+
+ /**
+ * Firmware type.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineArchitectureDetails.FirmwareType firmware_type = 7;
+ * @return int
+ */
+ public function getFirmwareType()
+ {
+ return $this->firmware_type;
+ }
+
+ /**
+ * Firmware type.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineArchitectureDetails.FirmwareType firmware_type = 7;
+ * @param int $var
+ * @return $this
+ */
+ public function setFirmwareType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\MachineArchitectureDetails\FirmwareType::class);
+ $this->firmware_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * CPU hyper-threading support.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineArchitectureDetails.CpuHyperThreading hyperthreading = 8;
+ * @return int
+ */
+ public function getHyperthreading()
+ {
+ return $this->hyperthreading;
+ }
+
+ /**
+ * CPU hyper-threading support.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineArchitectureDetails.CpuHyperThreading hyperthreading = 8;
+ * @param int $var
+ * @return $this
+ */
+ public function setHyperthreading($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\MachineArchitectureDetails\CpuHyperThreading::class);
+ $this->hyperthreading = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineArchitectureDetails/CpuHyperThreading.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineArchitectureDetails/CpuHyperThreading.php
new file mode 100644
index 000000000000..85eefa303885
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineArchitectureDetails/CpuHyperThreading.php
@@ -0,0 +1,64 @@
+google.cloud.migrationcenter.v1.MachineArchitectureDetails.CpuHyperThreading
+ */
+class CpuHyperThreading
+{
+ /**
+ * Unspecified or unknown.
+ *
+ * Generated from protobuf enum CPU_HYPER_THREADING_UNSPECIFIED = 0;
+ */
+ const CPU_HYPER_THREADING_UNSPECIFIED = 0;
+ /**
+ * Hyper-threading is disabled.
+ *
+ * Generated from protobuf enum DISABLED = 1;
+ */
+ const DISABLED = 1;
+ /**
+ * Hyper-threading is enabled.
+ *
+ * Generated from protobuf enum ENABLED = 2;
+ */
+ const ENABLED = 2;
+
+ private static $valueToName = [
+ self::CPU_HYPER_THREADING_UNSPECIFIED => 'CPU_HYPER_THREADING_UNSPECIFIED',
+ self::DISABLED => 'DISABLED',
+ self::ENABLED => 'ENABLED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CpuHyperThreading::class, \Google\Cloud\MigrationCenter\V1\MachineArchitectureDetails_CpuHyperThreading::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineArchitectureDetails/FirmwareType.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineArchitectureDetails/FirmwareType.php
new file mode 100644
index 000000000000..2323225f79b3
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineArchitectureDetails/FirmwareType.php
@@ -0,0 +1,64 @@
+google.cloud.migrationcenter.v1.MachineArchitectureDetails.FirmwareType
+ */
+class FirmwareType
+{
+ /**
+ * Unspecified or unknown.
+ *
+ * Generated from protobuf enum FIRMWARE_TYPE_UNSPECIFIED = 0;
+ */
+ const FIRMWARE_TYPE_UNSPECIFIED = 0;
+ /**
+ * BIOS firmware.
+ *
+ * Generated from protobuf enum BIOS = 1;
+ */
+ const BIOS = 1;
+ /**
+ * EFI firmware.
+ *
+ * Generated from protobuf enum EFI = 2;
+ */
+ const EFI = 2;
+
+ private static $valueToName = [
+ self::FIRMWARE_TYPE_UNSPECIFIED => 'FIRMWARE_TYPE_UNSPECIFIED',
+ self::BIOS => 'BIOS',
+ self::EFI => 'EFI',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(FirmwareType::class, \Google\Cloud\MigrationCenter\V1\MachineArchitectureDetails_FirmwareType::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineDetails.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineDetails.php
new file mode 100644
index 000000000000..00a127cedaca
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineDetails.php
@@ -0,0 +1,467 @@
+google.cloud.migrationcenter.v1.MachineDetails
+ */
+class MachineDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Machine unique identifier.
+ *
+ * Generated from protobuf field string uuid = 1;
+ */
+ protected $uuid = '';
+ /**
+ * Machine name.
+ *
+ * Generated from protobuf field string machine_name = 2;
+ */
+ protected $machine_name = '';
+ /**
+ * Machine creation time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3;
+ */
+ protected $create_time = null;
+ /**
+ * Number of CPU cores in the machine. Must be non-negative.
+ *
+ * Generated from protobuf field int32 core_count = 4;
+ */
+ protected $core_count = 0;
+ /**
+ * The amount of memory in the machine. Must be non-negative.
+ *
+ * Generated from protobuf field int32 memory_mb = 5;
+ */
+ protected $memory_mb = 0;
+ /**
+ * Power state of the machine.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineDetails.PowerState power_state = 6;
+ */
+ protected $power_state = 0;
+ /**
+ * Architecture details (vendor, CPU architecture).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineArchitectureDetails architecture = 7;
+ */
+ protected $architecture = null;
+ /**
+ * Guest OS information.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GuestOsDetails guest_os = 8;
+ */
+ protected $guest_os = null;
+ /**
+ * Network details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineNetworkDetails network = 9;
+ */
+ protected $network = null;
+ /**
+ * Disk details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineDiskDetails disks = 10;
+ */
+ protected $disks = null;
+ /**
+ * Platform specific information.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.PlatformDetails platform = 11;
+ */
+ protected $platform = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $uuid
+ * Machine unique identifier.
+ * @type string $machine_name
+ * Machine name.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Machine creation time.
+ * @type int $core_count
+ * Number of CPU cores in the machine. Must be non-negative.
+ * @type int $memory_mb
+ * The amount of memory in the machine. Must be non-negative.
+ * @type int $power_state
+ * Power state of the machine.
+ * @type \Google\Cloud\MigrationCenter\V1\MachineArchitectureDetails $architecture
+ * Architecture details (vendor, CPU architecture).
+ * @type \Google\Cloud\MigrationCenter\V1\GuestOsDetails $guest_os
+ * Guest OS information.
+ * @type \Google\Cloud\MigrationCenter\V1\MachineNetworkDetails $network
+ * Network details.
+ * @type \Google\Cloud\MigrationCenter\V1\MachineDiskDetails $disks
+ * Disk details.
+ * @type \Google\Cloud\MigrationCenter\V1\PlatformDetails $platform
+ * Platform specific information.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Machine unique identifier.
+ *
+ * Generated from protobuf field string uuid = 1;
+ * @return string
+ */
+ public function getUuid()
+ {
+ return $this->uuid;
+ }
+
+ /**
+ * Machine unique identifier.
+ *
+ * Generated from protobuf field string uuid = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setUuid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uuid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Machine name.
+ *
+ * Generated from protobuf field string machine_name = 2;
+ * @return string
+ */
+ public function getMachineName()
+ {
+ return $this->machine_name;
+ }
+
+ /**
+ * Machine name.
+ *
+ * Generated from protobuf field string machine_name = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setMachineName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->machine_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Machine creation time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Machine creation time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Number of CPU cores in the machine. Must be non-negative.
+ *
+ * Generated from protobuf field int32 core_count = 4;
+ * @return int
+ */
+ public function getCoreCount()
+ {
+ return $this->core_count;
+ }
+
+ /**
+ * Number of CPU cores in the machine. Must be non-negative.
+ *
+ * Generated from protobuf field int32 core_count = 4;
+ * @param int $var
+ * @return $this
+ */
+ public function setCoreCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->core_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * The amount of memory in the machine. Must be non-negative.
+ *
+ * Generated from protobuf field int32 memory_mb = 5;
+ * @return int
+ */
+ public function getMemoryMb()
+ {
+ return $this->memory_mb;
+ }
+
+ /**
+ * The amount of memory in the machine. Must be non-negative.
+ *
+ * Generated from protobuf field int32 memory_mb = 5;
+ * @param int $var
+ * @return $this
+ */
+ public function setMemoryMb($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->memory_mb = $var;
+
+ return $this;
+ }
+
+ /**
+ * Power state of the machine.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineDetails.PowerState power_state = 6;
+ * @return int
+ */
+ public function getPowerState()
+ {
+ return $this->power_state;
+ }
+
+ /**
+ * Power state of the machine.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineDetails.PowerState power_state = 6;
+ * @param int $var
+ * @return $this
+ */
+ public function setPowerState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\MachineDetails\PowerState::class);
+ $this->power_state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Architecture details (vendor, CPU architecture).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineArchitectureDetails architecture = 7;
+ * @return \Google\Cloud\MigrationCenter\V1\MachineArchitectureDetails|null
+ */
+ public function getArchitecture()
+ {
+ return $this->architecture;
+ }
+
+ public function hasArchitecture()
+ {
+ return isset($this->architecture);
+ }
+
+ public function clearArchitecture()
+ {
+ unset($this->architecture);
+ }
+
+ /**
+ * Architecture details (vendor, CPU architecture).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineArchitectureDetails architecture = 7;
+ * @param \Google\Cloud\MigrationCenter\V1\MachineArchitectureDetails $var
+ * @return $this
+ */
+ public function setArchitecture($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\MachineArchitectureDetails::class);
+ $this->architecture = $var;
+
+ return $this;
+ }
+
+ /**
+ * Guest OS information.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GuestOsDetails guest_os = 8;
+ * @return \Google\Cloud\MigrationCenter\V1\GuestOsDetails|null
+ */
+ public function getGuestOs()
+ {
+ return $this->guest_os;
+ }
+
+ public function hasGuestOs()
+ {
+ return isset($this->guest_os);
+ }
+
+ public function clearGuestOs()
+ {
+ unset($this->guest_os);
+ }
+
+ /**
+ * Guest OS information.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GuestOsDetails guest_os = 8;
+ * @param \Google\Cloud\MigrationCenter\V1\GuestOsDetails $var
+ * @return $this
+ */
+ public function setGuestOs($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\GuestOsDetails::class);
+ $this->guest_os = $var;
+
+ return $this;
+ }
+
+ /**
+ * Network details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineNetworkDetails network = 9;
+ * @return \Google\Cloud\MigrationCenter\V1\MachineNetworkDetails|null
+ */
+ public function getNetwork()
+ {
+ return $this->network;
+ }
+
+ public function hasNetwork()
+ {
+ return isset($this->network);
+ }
+
+ public function clearNetwork()
+ {
+ unset($this->network);
+ }
+
+ /**
+ * Network details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineNetworkDetails network = 9;
+ * @param \Google\Cloud\MigrationCenter\V1\MachineNetworkDetails $var
+ * @return $this
+ */
+ public function setNetwork($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\MachineNetworkDetails::class);
+ $this->network = $var;
+
+ return $this;
+ }
+
+ /**
+ * Disk details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineDiskDetails disks = 10;
+ * @return \Google\Cloud\MigrationCenter\V1\MachineDiskDetails|null
+ */
+ public function getDisks()
+ {
+ return $this->disks;
+ }
+
+ public function hasDisks()
+ {
+ return isset($this->disks);
+ }
+
+ public function clearDisks()
+ {
+ unset($this->disks);
+ }
+
+ /**
+ * Disk details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineDiskDetails disks = 10;
+ * @param \Google\Cloud\MigrationCenter\V1\MachineDiskDetails $var
+ * @return $this
+ */
+ public function setDisks($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\MachineDiskDetails::class);
+ $this->disks = $var;
+
+ return $this;
+ }
+
+ /**
+ * Platform specific information.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.PlatformDetails platform = 11;
+ * @return \Google\Cloud\MigrationCenter\V1\PlatformDetails|null
+ */
+ public function getPlatform()
+ {
+ return $this->platform;
+ }
+
+ public function hasPlatform()
+ {
+ return isset($this->platform);
+ }
+
+ public function clearPlatform()
+ {
+ unset($this->platform);
+ }
+
+ /**
+ * Platform specific information.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.PlatformDetails platform = 11;
+ * @param \Google\Cloud\MigrationCenter\V1\PlatformDetails $var
+ * @return $this
+ */
+ public function setPlatform($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\PlatformDetails::class);
+ $this->platform = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineDetails/PowerState.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineDetails/PowerState.php
new file mode 100644
index 000000000000..21dad929d6af
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineDetails/PowerState.php
@@ -0,0 +1,94 @@
+google.cloud.migrationcenter.v1.MachineDetails.PowerState
+ */
+class PowerState
+{
+ /**
+ * Power state is unknown.
+ *
+ * Generated from protobuf enum POWER_STATE_UNSPECIFIED = 0;
+ */
+ const POWER_STATE_UNSPECIFIED = 0;
+ /**
+ * The machine is preparing to enter the ACTIVE state. An instance may enter
+ * the PENDING state when it launches for the first time, or when it is
+ * started after being in the SUSPENDED state.
+ *
+ * Generated from protobuf enum PENDING = 1;
+ */
+ const PENDING = 1;
+ /**
+ * The machine is active.
+ *
+ * Generated from protobuf enum ACTIVE = 2;
+ */
+ const ACTIVE = 2;
+ /**
+ * The machine is being turned off.
+ *
+ * Generated from protobuf enum SUSPENDING = 3;
+ */
+ const SUSPENDING = 3;
+ /**
+ * The machine is off.
+ *
+ * Generated from protobuf enum SUSPENDED = 4;
+ */
+ const SUSPENDED = 4;
+ /**
+ * The machine is being deleted from the hosting platform.
+ *
+ * Generated from protobuf enum DELETING = 5;
+ */
+ const DELETING = 5;
+ /**
+ * The machine is deleted from the hosting platform.
+ *
+ * Generated from protobuf enum DELETED = 6;
+ */
+ const DELETED = 6;
+
+ private static $valueToName = [
+ self::POWER_STATE_UNSPECIFIED => 'POWER_STATE_UNSPECIFIED',
+ self::PENDING => 'PENDING',
+ self::ACTIVE => 'ACTIVE',
+ self::SUSPENDING => 'SUSPENDING',
+ self::SUSPENDED => 'SUSPENDED',
+ self::DELETING => 'DELETING',
+ self::DELETED => 'DELETED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PowerState::class, \Google\Cloud\MigrationCenter\V1\MachineDetails_PowerState::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineDiskDetails.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineDiskDetails.php
new file mode 100644
index 000000000000..968285069a4b
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineDiskDetails.php
@@ -0,0 +1,145 @@
+google.cloud.migrationcenter.v1.MachineDiskDetails
+ */
+class MachineDiskDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Disk total Capacity.
+ *
+ * Generated from protobuf field int64 total_capacity_bytes = 1;
+ */
+ protected $total_capacity_bytes = 0;
+ /**
+ * Total disk free space.
+ *
+ * Generated from protobuf field int64 total_free_bytes = 2;
+ */
+ protected $total_free_bytes = 0;
+ /**
+ * List of disks.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DiskEntryList disks = 3;
+ */
+ protected $disks = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $total_capacity_bytes
+ * Disk total Capacity.
+ * @type int|string $total_free_bytes
+ * Total disk free space.
+ * @type \Google\Cloud\MigrationCenter\V1\DiskEntryList $disks
+ * List of disks.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Disk total Capacity.
+ *
+ * Generated from protobuf field int64 total_capacity_bytes = 1;
+ * @return int|string
+ */
+ public function getTotalCapacityBytes()
+ {
+ return $this->total_capacity_bytes;
+ }
+
+ /**
+ * Disk total Capacity.
+ *
+ * Generated from protobuf field int64 total_capacity_bytes = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setTotalCapacityBytes($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->total_capacity_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Total disk free space.
+ *
+ * Generated from protobuf field int64 total_free_bytes = 2;
+ * @return int|string
+ */
+ public function getTotalFreeBytes()
+ {
+ return $this->total_free_bytes;
+ }
+
+ /**
+ * Total disk free space.
+ *
+ * Generated from protobuf field int64 total_free_bytes = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setTotalFreeBytes($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->total_free_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * List of disks.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DiskEntryList disks = 3;
+ * @return \Google\Cloud\MigrationCenter\V1\DiskEntryList|null
+ */
+ public function getDisks()
+ {
+ return $this->disks;
+ }
+
+ public function hasDisks()
+ {
+ return isset($this->disks);
+ }
+
+ public function clearDisks()
+ {
+ unset($this->disks);
+ }
+
+ /**
+ * List of disks.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DiskEntryList disks = 3;
+ * @param \Google\Cloud\MigrationCenter\V1\DiskEntryList $var
+ * @return $this
+ */
+ public function setDisks($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\DiskEntryList::class);
+ $this->disks = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineNetworkDetails.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineNetworkDetails.php
new file mode 100644
index 000000000000..9949793b9975
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineNetworkDetails.php
@@ -0,0 +1,183 @@
+google.cloud.migrationcenter.v1.MachineNetworkDetails
+ */
+class MachineNetworkDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The primary IP address of the machine.
+ *
+ * Generated from protobuf field string primary_ip_address = 1;
+ */
+ protected $primary_ip_address = '';
+ /**
+ * The public IP address of the machine.
+ *
+ * Generated from protobuf field string public_ip_address = 2;
+ */
+ protected $public_ip_address = '';
+ /**
+ * MAC address of the machine.
+ * This property is used to uniqly identify the machine.
+ *
+ * Generated from protobuf field string primary_mac_address = 3;
+ */
+ protected $primary_mac_address = '';
+ /**
+ * List of network adapters.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkAdapterList adapters = 4;
+ */
+ protected $adapters = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $primary_ip_address
+ * The primary IP address of the machine.
+ * @type string $public_ip_address
+ * The public IP address of the machine.
+ * @type string $primary_mac_address
+ * MAC address of the machine.
+ * This property is used to uniqly identify the machine.
+ * @type \Google\Cloud\MigrationCenter\V1\NetworkAdapterList $adapters
+ * List of network adapters.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The primary IP address of the machine.
+ *
+ * Generated from protobuf field string primary_ip_address = 1;
+ * @return string
+ */
+ public function getPrimaryIpAddress()
+ {
+ return $this->primary_ip_address;
+ }
+
+ /**
+ * The primary IP address of the machine.
+ *
+ * Generated from protobuf field string primary_ip_address = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setPrimaryIpAddress($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->primary_ip_address = $var;
+
+ return $this;
+ }
+
+ /**
+ * The public IP address of the machine.
+ *
+ * Generated from protobuf field string public_ip_address = 2;
+ * @return string
+ */
+ public function getPublicIpAddress()
+ {
+ return $this->public_ip_address;
+ }
+
+ /**
+ * The public IP address of the machine.
+ *
+ * Generated from protobuf field string public_ip_address = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setPublicIpAddress($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->public_ip_address = $var;
+
+ return $this;
+ }
+
+ /**
+ * MAC address of the machine.
+ * This property is used to uniqly identify the machine.
+ *
+ * Generated from protobuf field string primary_mac_address = 3;
+ * @return string
+ */
+ public function getPrimaryMacAddress()
+ {
+ return $this->primary_mac_address;
+ }
+
+ /**
+ * MAC address of the machine.
+ * This property is used to uniqly identify the machine.
+ *
+ * Generated from protobuf field string primary_mac_address = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPrimaryMacAddress($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->primary_mac_address = $var;
+
+ return $this;
+ }
+
+ /**
+ * List of network adapters.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkAdapterList adapters = 4;
+ * @return \Google\Cloud\MigrationCenter\V1\NetworkAdapterList|null
+ */
+ public function getAdapters()
+ {
+ return $this->adapters;
+ }
+
+ public function hasAdapters()
+ {
+ return isset($this->adapters);
+ }
+
+ public function clearAdapters()
+ {
+ unset($this->adapters);
+ }
+
+ /**
+ * List of network adapters.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkAdapterList adapters = 4;
+ * @param \Google\Cloud\MigrationCenter\V1\NetworkAdapterList $var
+ * @return $this
+ */
+ public function setAdapters($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\NetworkAdapterList::class);
+ $this->adapters = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachinePreferences.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachinePreferences.php
new file mode 100644
index 000000000000..98a819f472b9
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachinePreferences.php
@@ -0,0 +1,73 @@
+google.cloud.migrationcenter.v1.MachinePreferences
+ */
+class MachinePreferences extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Compute Engine machine series to consider for insights and recommendations.
+ * If empty, no restriction is applied on the machine series.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.MachineSeries allowed_machine_series = 1;
+ */
+ private $allowed_machine_series;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\MachineSeries>|\Google\Protobuf\Internal\RepeatedField $allowed_machine_series
+ * Compute Engine machine series to consider for insights and recommendations.
+ * If empty, no restriction is applied on the machine series.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Compute Engine machine series to consider for insights and recommendations.
+ * If empty, no restriction is applied on the machine series.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.MachineSeries allowed_machine_series = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAllowedMachineSeries()
+ {
+ return $this->allowed_machine_series;
+ }
+
+ /**
+ * Compute Engine machine series to consider for insights and recommendations.
+ * If empty, no restriction is applied on the machine series.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.MachineSeries allowed_machine_series = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\MachineSeries>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAllowedMachineSeries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\MachineSeries::class);
+ $this->allowed_machine_series = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineSeries.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineSeries.php
new file mode 100644
index 000000000000..eaae31262c65
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MachineSeries.php
@@ -0,0 +1,75 @@
+google.cloud.migrationcenter.v1.MachineSeries
+ */
+class MachineSeries extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Code to identify a Compute Engine machine series. Consult
+ * https://cloud.google.com/compute/docs/machine-resource#machine_type_comparison
+ * for more details on the available series.
+ *
+ * Generated from protobuf field string code = 1;
+ */
+ protected $code = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $code
+ * Code to identify a Compute Engine machine series. Consult
+ * https://cloud.google.com/compute/docs/machine-resource#machine_type_comparison
+ * for more details on the available series.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Code to identify a Compute Engine machine series. Consult
+ * https://cloud.google.com/compute/docs/machine-resource#machine_type_comparison
+ * for more details on the available series.
+ *
+ * Generated from protobuf field string code = 1;
+ * @return string
+ */
+ public function getCode()
+ {
+ return $this->code;
+ }
+
+ /**
+ * Code to identify a Compute Engine machine series. Consult
+ * https://cloud.google.com/compute/docs/machine-resource#machine_type_comparison
+ * for more details on the available series.
+ *
+ * Generated from protobuf field string code = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setCode($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->code = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MemoryUsageSample.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MemoryUsageSample.php
new file mode 100644
index 000000000000..4cf93d504334
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MemoryUsageSample.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.MemoryUsageSample
+ */
+class MemoryUsageSample extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Percentage of system memory utilized. Must be in the interval [0, 100].
+ *
+ * Generated from protobuf field float utilized_percentage = 1;
+ */
+ protected $utilized_percentage = 0.0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type float $utilized_percentage
+ * Percentage of system memory utilized. Must be in the interval [0, 100].
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Percentage of system memory utilized. Must be in the interval [0, 100].
+ *
+ * Generated from protobuf field float utilized_percentage = 1;
+ * @return float
+ */
+ public function getUtilizedPercentage()
+ {
+ return $this->utilized_percentage;
+ }
+
+ /**
+ * Percentage of system memory utilized. Must be in the interval [0, 100].
+ *
+ * Generated from protobuf field float utilized_percentage = 1;
+ * @param float $var
+ * @return $this
+ */
+ public function setUtilizedPercentage($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->utilized_percentage = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MigrationInsight.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MigrationInsight.php
new file mode 100644
index 000000000000..f735aaf003f3
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/MigrationInsight.php
@@ -0,0 +1,123 @@
+google.cloud.migrationcenter.v1.MigrationInsight
+ */
+class MigrationInsight extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Description of how well the asset this insight is associated
+ * with fits the proposed migration.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.FitDescriptor fit = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $fit = null;
+ protected $migration_target;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MigrationCenter\V1\FitDescriptor $fit
+ * Output only. Description of how well the asset this insight is associated
+ * with fits the proposed migration.
+ * @type \Google\Cloud\MigrationCenter\V1\ComputeEngineMigrationTarget $compute_engine_target
+ * Output only. A Google Compute Engine target.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Description of how well the asset this insight is associated
+ * with fits the proposed migration.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.FitDescriptor fit = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\MigrationCenter\V1\FitDescriptor|null
+ */
+ public function getFit()
+ {
+ return $this->fit;
+ }
+
+ public function hasFit()
+ {
+ return isset($this->fit);
+ }
+
+ public function clearFit()
+ {
+ unset($this->fit);
+ }
+
+ /**
+ * Output only. Description of how well the asset this insight is associated
+ * with fits the proposed migration.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.FitDescriptor fit = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\MigrationCenter\V1\FitDescriptor $var
+ * @return $this
+ */
+ public function setFit($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\FitDescriptor::class);
+ $this->fit = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. A Google Compute Engine target.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ComputeEngineMigrationTarget compute_engine_target = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\MigrationCenter\V1\ComputeEngineMigrationTarget|null
+ */
+ public function getComputeEngineTarget()
+ {
+ return $this->readOneof(10);
+ }
+
+ public function hasComputeEngineTarget()
+ {
+ return $this->hasOneof(10);
+ }
+
+ /**
+ * Output only. A Google Compute Engine target.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ComputeEngineMigrationTarget compute_engine_target = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\MigrationCenter\V1\ComputeEngineMigrationTarget $var
+ * @return $this
+ */
+ public function setComputeEngineTarget($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ComputeEngineMigrationTarget::class);
+ $this->writeOneof(10, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getMigrationTarget()
+ {
+ return $this->whichOneof("migration_target");
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkAdapterDetails.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkAdapterDetails.php
new file mode 100644
index 000000000000..34f3c8168393
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkAdapterDetails.php
@@ -0,0 +1,145 @@
+google.cloud.migrationcenter.v1.NetworkAdapterDetails
+ */
+class NetworkAdapterDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Network adapter type (e.g. VMXNET3).
+ *
+ * Generated from protobuf field string adapter_type = 1;
+ */
+ protected $adapter_type = '';
+ /**
+ * MAC address.
+ *
+ * Generated from protobuf field string mac_address = 2;
+ */
+ protected $mac_address = '';
+ /**
+ * NetworkAddressList
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkAddressList addresses = 3;
+ */
+ protected $addresses = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $adapter_type
+ * Network adapter type (e.g. VMXNET3).
+ * @type string $mac_address
+ * MAC address.
+ * @type \Google\Cloud\MigrationCenter\V1\NetworkAddressList $addresses
+ * NetworkAddressList
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Network adapter type (e.g. VMXNET3).
+ *
+ * Generated from protobuf field string adapter_type = 1;
+ * @return string
+ */
+ public function getAdapterType()
+ {
+ return $this->adapter_type;
+ }
+
+ /**
+ * Network adapter type (e.g. VMXNET3).
+ *
+ * Generated from protobuf field string adapter_type = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setAdapterType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->adapter_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * MAC address.
+ *
+ * Generated from protobuf field string mac_address = 2;
+ * @return string
+ */
+ public function getMacAddress()
+ {
+ return $this->mac_address;
+ }
+
+ /**
+ * MAC address.
+ *
+ * Generated from protobuf field string mac_address = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setMacAddress($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->mac_address = $var;
+
+ return $this;
+ }
+
+ /**
+ * NetworkAddressList
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkAddressList addresses = 3;
+ * @return \Google\Cloud\MigrationCenter\V1\NetworkAddressList|null
+ */
+ public function getAddresses()
+ {
+ return $this->addresses;
+ }
+
+ public function hasAddresses()
+ {
+ return isset($this->addresses);
+ }
+
+ public function clearAddresses()
+ {
+ unset($this->addresses);
+ }
+
+ /**
+ * NetworkAddressList
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkAddressList addresses = 3;
+ * @param \Google\Cloud\MigrationCenter\V1\NetworkAddressList $var
+ * @return $this
+ */
+ public function setAddresses($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\NetworkAddressList::class);
+ $this->addresses = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkAdapterList.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkAdapterList.php
new file mode 100644
index 000000000000..a8767ce3a699
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkAdapterList.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.NetworkAdapterList
+ */
+class NetworkAdapterList extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Network adapter entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.NetworkAdapterDetails entries = 1;
+ */
+ private $entries;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\NetworkAdapterDetails>|\Google\Protobuf\Internal\RepeatedField $entries
+ * Network adapter entries.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Network adapter entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.NetworkAdapterDetails entries = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEntries()
+ {
+ return $this->entries;
+ }
+
+ /**
+ * Network adapter entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.NetworkAdapterDetails entries = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\NetworkAdapterDetails>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEntries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\NetworkAdapterDetails::class);
+ $this->entries = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkAddress.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkAddress.php
new file mode 100644
index 000000000000..ed7928240f41
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkAddress.php
@@ -0,0 +1,203 @@
+google.cloud.migrationcenter.v1.NetworkAddress
+ */
+class NetworkAddress extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Assigned or configured IP Address.
+ *
+ * Generated from protobuf field string ip_address = 1;
+ */
+ protected $ip_address = '';
+ /**
+ * Subnet mask.
+ *
+ * Generated from protobuf field string subnet_mask = 2;
+ */
+ protected $subnet_mask = '';
+ /**
+ * Broadcast address.
+ *
+ * Generated from protobuf field string bcast = 3;
+ */
+ protected $bcast = '';
+ /**
+ * Fully qualified domain name.
+ *
+ * Generated from protobuf field string fqdn = 4;
+ */
+ protected $fqdn = '';
+ /**
+ * Whether DHCP is used to assign addresses.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkAddress.AddressAssignment assignment = 5;
+ */
+ protected $assignment = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $ip_address
+ * Assigned or configured IP Address.
+ * @type string $subnet_mask
+ * Subnet mask.
+ * @type string $bcast
+ * Broadcast address.
+ * @type string $fqdn
+ * Fully qualified domain name.
+ * @type int $assignment
+ * Whether DHCP is used to assign addresses.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Assigned or configured IP Address.
+ *
+ * Generated from protobuf field string ip_address = 1;
+ * @return string
+ */
+ public function getIpAddress()
+ {
+ return $this->ip_address;
+ }
+
+ /**
+ * Assigned or configured IP Address.
+ *
+ * Generated from protobuf field string ip_address = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setIpAddress($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->ip_address = $var;
+
+ return $this;
+ }
+
+ /**
+ * Subnet mask.
+ *
+ * Generated from protobuf field string subnet_mask = 2;
+ * @return string
+ */
+ public function getSubnetMask()
+ {
+ return $this->subnet_mask;
+ }
+
+ /**
+ * Subnet mask.
+ *
+ * Generated from protobuf field string subnet_mask = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setSubnetMask($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->subnet_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Broadcast address.
+ *
+ * Generated from protobuf field string bcast = 3;
+ * @return string
+ */
+ public function getBcast()
+ {
+ return $this->bcast;
+ }
+
+ /**
+ * Broadcast address.
+ *
+ * Generated from protobuf field string bcast = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setBcast($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->bcast = $var;
+
+ return $this;
+ }
+
+ /**
+ * Fully qualified domain name.
+ *
+ * Generated from protobuf field string fqdn = 4;
+ * @return string
+ */
+ public function getFqdn()
+ {
+ return $this->fqdn;
+ }
+
+ /**
+ * Fully qualified domain name.
+ *
+ * Generated from protobuf field string fqdn = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFqdn($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->fqdn = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether DHCP is used to assign addresses.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkAddress.AddressAssignment assignment = 5;
+ * @return int
+ */
+ public function getAssignment()
+ {
+ return $this->assignment;
+ }
+
+ /**
+ * Whether DHCP is used to assign addresses.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkAddress.AddressAssignment assignment = 5;
+ * @param int $var
+ * @return $this
+ */
+ public function setAssignment($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\NetworkAddress\AddressAssignment::class);
+ $this->assignment = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkAddress/AddressAssignment.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkAddress/AddressAssignment.php
new file mode 100644
index 000000000000..7ef71a9aab7b
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkAddress/AddressAssignment.php
@@ -0,0 +1,64 @@
+google.cloud.migrationcenter.v1.NetworkAddress.AddressAssignment
+ */
+class AddressAssignment
+{
+ /**
+ * Unknown (default value).
+ *
+ * Generated from protobuf enum ADDRESS_ASSIGNMENT_UNSPECIFIED = 0;
+ */
+ const ADDRESS_ASSIGNMENT_UNSPECIFIED = 0;
+ /**
+ * Staticly assigned IP.
+ *
+ * Generated from protobuf enum ADDRESS_ASSIGNMENT_STATIC = 1;
+ */
+ const ADDRESS_ASSIGNMENT_STATIC = 1;
+ /**
+ * Dynamically assigned IP (DHCP).
+ *
+ * Generated from protobuf enum ADDRESS_ASSIGNMENT_DHCP = 2;
+ */
+ const ADDRESS_ASSIGNMENT_DHCP = 2;
+
+ private static $valueToName = [
+ self::ADDRESS_ASSIGNMENT_UNSPECIFIED => 'ADDRESS_ASSIGNMENT_UNSPECIFIED',
+ self::ADDRESS_ASSIGNMENT_STATIC => 'ADDRESS_ASSIGNMENT_STATIC',
+ self::ADDRESS_ASSIGNMENT_DHCP => 'ADDRESS_ASSIGNMENT_DHCP',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(AddressAssignment::class, \Google\Cloud\MigrationCenter\V1\NetworkAddress_AddressAssignment::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkAddressList.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkAddressList.php
new file mode 100644
index 000000000000..a11b3d494b8c
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkAddressList.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.NetworkAddressList
+ */
+class NetworkAddressList extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Network address entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.NetworkAddress entries = 1;
+ */
+ private $entries;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\NetworkAddress>|\Google\Protobuf\Internal\RepeatedField $entries
+ * Network address entries.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Network address entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.NetworkAddress entries = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEntries()
+ {
+ return $this->entries;
+ }
+
+ /**
+ * Network address entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.NetworkAddress entries = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\NetworkAddress>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEntries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\NetworkAddress::class);
+ $this->entries = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkConnection.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkConnection.php
new file mode 100644
index 000000000000..1cb223103ec1
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkConnection.php
@@ -0,0 +1,303 @@
+google.cloud.migrationcenter.v1.NetworkConnection
+ */
+class NetworkConnection extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Connection protocol (e.g. TCP/UDP).
+ *
+ * Generated from protobuf field string protocol = 1;
+ */
+ protected $protocol = '';
+ /**
+ * Local IP address.
+ *
+ * Generated from protobuf field string local_ip_address = 2;
+ */
+ protected $local_ip_address = '';
+ /**
+ * Local port.
+ *
+ * Generated from protobuf field int32 local_port = 3;
+ */
+ protected $local_port = 0;
+ /**
+ * Remote IP address.
+ *
+ * Generated from protobuf field string remote_ip_address = 4;
+ */
+ protected $remote_ip_address = '';
+ /**
+ * Remote port.
+ *
+ * Generated from protobuf field int32 remote_port = 5;
+ */
+ protected $remote_port = 0;
+ /**
+ * Network connection state.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkConnection.State state = 6;
+ */
+ protected $state = 0;
+ /**
+ * Process ID.
+ *
+ * Generated from protobuf field int64 pid = 7;
+ */
+ protected $pid = 0;
+ /**
+ * Process or service name.
+ *
+ * Generated from protobuf field string process_name = 8;
+ */
+ protected $process_name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $protocol
+ * Connection protocol (e.g. TCP/UDP).
+ * @type string $local_ip_address
+ * Local IP address.
+ * @type int $local_port
+ * Local port.
+ * @type string $remote_ip_address
+ * Remote IP address.
+ * @type int $remote_port
+ * Remote port.
+ * @type int $state
+ * Network connection state.
+ * @type int|string $pid
+ * Process ID.
+ * @type string $process_name
+ * Process or service name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Connection protocol (e.g. TCP/UDP).
+ *
+ * Generated from protobuf field string protocol = 1;
+ * @return string
+ */
+ public function getProtocol()
+ {
+ return $this->protocol;
+ }
+
+ /**
+ * Connection protocol (e.g. TCP/UDP).
+ *
+ * Generated from protobuf field string protocol = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setProtocol($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->protocol = $var;
+
+ return $this;
+ }
+
+ /**
+ * Local IP address.
+ *
+ * Generated from protobuf field string local_ip_address = 2;
+ * @return string
+ */
+ public function getLocalIpAddress()
+ {
+ return $this->local_ip_address;
+ }
+
+ /**
+ * Local IP address.
+ *
+ * Generated from protobuf field string local_ip_address = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setLocalIpAddress($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->local_ip_address = $var;
+
+ return $this;
+ }
+
+ /**
+ * Local port.
+ *
+ * Generated from protobuf field int32 local_port = 3;
+ * @return int
+ */
+ public function getLocalPort()
+ {
+ return $this->local_port;
+ }
+
+ /**
+ * Local port.
+ *
+ * Generated from protobuf field int32 local_port = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setLocalPort($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->local_port = $var;
+
+ return $this;
+ }
+
+ /**
+ * Remote IP address.
+ *
+ * Generated from protobuf field string remote_ip_address = 4;
+ * @return string
+ */
+ public function getRemoteIpAddress()
+ {
+ return $this->remote_ip_address;
+ }
+
+ /**
+ * Remote IP address.
+ *
+ * Generated from protobuf field string remote_ip_address = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setRemoteIpAddress($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->remote_ip_address = $var;
+
+ return $this;
+ }
+
+ /**
+ * Remote port.
+ *
+ * Generated from protobuf field int32 remote_port = 5;
+ * @return int
+ */
+ public function getRemotePort()
+ {
+ return $this->remote_port;
+ }
+
+ /**
+ * Remote port.
+ *
+ * Generated from protobuf field int32 remote_port = 5;
+ * @param int $var
+ * @return $this
+ */
+ public function setRemotePort($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->remote_port = $var;
+
+ return $this;
+ }
+
+ /**
+ * Network connection state.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkConnection.State state = 6;
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Network connection state.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkConnection.State state = 6;
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\NetworkConnection\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Process ID.
+ *
+ * Generated from protobuf field int64 pid = 7;
+ * @return int|string
+ */
+ public function getPid()
+ {
+ return $this->pid;
+ }
+
+ /**
+ * Process ID.
+ *
+ * Generated from protobuf field int64 pid = 7;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setPid($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->pid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Process or service name.
+ *
+ * Generated from protobuf field string process_name = 8;
+ * @return string
+ */
+ public function getProcessName()
+ {
+ return $this->process_name;
+ }
+
+ /**
+ * Process or service name.
+ *
+ * Generated from protobuf field string process_name = 8;
+ * @param string $var
+ * @return $this
+ */
+ public function setProcessName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->process_name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkConnection/State.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkConnection/State.php
new file mode 100644
index 000000000000..bc8072a8b94e
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkConnection/State.php
@@ -0,0 +1,85 @@
+google.cloud.migrationcenter.v1.NetworkConnection.State
+ */
+class State
+{
+ /**
+ * Connection state is unknown or unspecified.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The connection is being opened.
+ *
+ * Generated from protobuf enum OPENING = 1;
+ */
+ const OPENING = 1;
+ /**
+ * The connection is open.
+ *
+ * Generated from protobuf enum OPEN = 2;
+ */
+ const OPEN = 2;
+ /**
+ * Listening for incoming connections.
+ *
+ * Generated from protobuf enum LISTEN = 3;
+ */
+ const LISTEN = 3;
+ /**
+ * The connection is being closed.
+ *
+ * Generated from protobuf enum CLOSING = 4;
+ */
+ const CLOSING = 4;
+ /**
+ * The connection is closed.
+ *
+ * Generated from protobuf enum CLOSED = 5;
+ */
+ const CLOSED = 5;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::OPENING => 'OPENING',
+ self::OPEN => 'OPEN',
+ self::LISTEN => 'LISTEN',
+ self::CLOSING => 'CLOSING',
+ self::CLOSED => 'CLOSED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(State::class, \Google\Cloud\MigrationCenter\V1\NetworkConnection_State::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkConnectionList.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkConnectionList.php
new file mode 100644
index 000000000000..bc8d2c11713d
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkConnectionList.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.NetworkConnectionList
+ */
+class NetworkConnectionList extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Network connection entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.NetworkConnection entries = 1;
+ */
+ private $entries;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\NetworkConnection>|\Google\Protobuf\Internal\RepeatedField $entries
+ * Network connection entries.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Network connection entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.NetworkConnection entries = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEntries()
+ {
+ return $this->entries;
+ }
+
+ /**
+ * Network connection entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.NetworkConnection entries = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\NetworkConnection>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEntries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\NetworkConnection::class);
+ $this->entries = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkUsageSample.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkUsageSample.php
new file mode 100644
index 000000000000..93378d8a79e8
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NetworkUsageSample.php
@@ -0,0 +1,109 @@
+google.cloud.migrationcenter.v1.NetworkUsageSample
+ */
+class NetworkUsageSample extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Average network ingress in B/s sampled over a short window.
+ * Must be non-negative.
+ *
+ * Generated from protobuf field float average_ingress_bps = 1;
+ */
+ protected $average_ingress_bps = 0.0;
+ /**
+ * Average network egress in B/s sampled over a short window.
+ * Must be non-negative.
+ *
+ * Generated from protobuf field float average_egress_bps = 2;
+ */
+ protected $average_egress_bps = 0.0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type float $average_ingress_bps
+ * Average network ingress in B/s sampled over a short window.
+ * Must be non-negative.
+ * @type float $average_egress_bps
+ * Average network egress in B/s sampled over a short window.
+ * Must be non-negative.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Average network ingress in B/s sampled over a short window.
+ * Must be non-negative.
+ *
+ * Generated from protobuf field float average_ingress_bps = 1;
+ * @return float
+ */
+ public function getAverageIngressBps()
+ {
+ return $this->average_ingress_bps;
+ }
+
+ /**
+ * Average network ingress in B/s sampled over a short window.
+ * Must be non-negative.
+ *
+ * Generated from protobuf field float average_ingress_bps = 1;
+ * @param float $var
+ * @return $this
+ */
+ public function setAverageIngressBps($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->average_ingress_bps = $var;
+
+ return $this;
+ }
+
+ /**
+ * Average network egress in B/s sampled over a short window.
+ * Must be non-negative.
+ *
+ * Generated from protobuf field float average_egress_bps = 2;
+ * @return float
+ */
+ public function getAverageEgressBps()
+ {
+ return $this->average_egress_bps;
+ }
+
+ /**
+ * Average network egress in B/s sampled over a short window.
+ * Must be non-negative.
+ *
+ * Generated from protobuf field float average_egress_bps = 2;
+ * @param float $var
+ * @return $this
+ */
+ public function setAverageEgressBps($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->average_egress_bps = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NfsExport.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NfsExport.php
new file mode 100644
index 000000000000..32cbc9a7ccb7
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NfsExport.php
@@ -0,0 +1,101 @@
+google.cloud.migrationcenter.v1.NfsExport
+ */
+class NfsExport extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The directory being exported.
+ *
+ * Generated from protobuf field string export_directory = 1;
+ */
+ protected $export_directory = '';
+ /**
+ * The hosts or networks to which the export is being shared.
+ *
+ * Generated from protobuf field repeated string hosts = 2;
+ */
+ private $hosts;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $export_directory
+ * The directory being exported.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $hosts
+ * The hosts or networks to which the export is being shared.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The directory being exported.
+ *
+ * Generated from protobuf field string export_directory = 1;
+ * @return string
+ */
+ public function getExportDirectory()
+ {
+ return $this->export_directory;
+ }
+
+ /**
+ * The directory being exported.
+ *
+ * Generated from protobuf field string export_directory = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setExportDirectory($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->export_directory = $var;
+
+ return $this;
+ }
+
+ /**
+ * The hosts or networks to which the export is being shared.
+ *
+ * Generated from protobuf field repeated string hosts = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getHosts()
+ {
+ return $this->hosts;
+ }
+
+ /**
+ * The hosts or networks to which the export is being shared.
+ *
+ * Generated from protobuf field repeated string hosts = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setHosts($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->hosts = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NfsExportList.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NfsExportList.php
new file mode 100644
index 000000000000..9031002de19e
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/NfsExportList.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.NfsExportList
+ */
+class NfsExportList extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * NFS export entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.NfsExport entries = 1;
+ */
+ private $entries;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\NfsExport>|\Google\Protobuf\Internal\RepeatedField $entries
+ * NFS export entries.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * NFS export entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.NfsExport entries = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEntries()
+ {
+ return $this->entries;
+ }
+
+ /**
+ * NFS export entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.NfsExport entries = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\NfsExport>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEntries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\NfsExport::class);
+ $this->entries = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/OpenFileDetails.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/OpenFileDetails.php
new file mode 100644
index 000000000000..c6f2e511686b
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/OpenFileDetails.php
@@ -0,0 +1,169 @@
+google.cloud.migrationcenter.v1.OpenFileDetails
+ */
+class OpenFileDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Opened file command.
+ *
+ * Generated from protobuf field string command = 1;
+ */
+ protected $command = '';
+ /**
+ * Opened file user.
+ *
+ * Generated from protobuf field string user = 2;
+ */
+ protected $user = '';
+ /**
+ * Opened file file type.
+ *
+ * Generated from protobuf field string file_type = 3;
+ */
+ protected $file_type = '';
+ /**
+ * Opened file file path.
+ *
+ * Generated from protobuf field string file_path = 4;
+ */
+ protected $file_path = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $command
+ * Opened file command.
+ * @type string $user
+ * Opened file user.
+ * @type string $file_type
+ * Opened file file type.
+ * @type string $file_path
+ * Opened file file path.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Opened file command.
+ *
+ * Generated from protobuf field string command = 1;
+ * @return string
+ */
+ public function getCommand()
+ {
+ return $this->command;
+ }
+
+ /**
+ * Opened file command.
+ *
+ * Generated from protobuf field string command = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setCommand($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->command = $var;
+
+ return $this;
+ }
+
+ /**
+ * Opened file user.
+ *
+ * Generated from protobuf field string user = 2;
+ * @return string
+ */
+ public function getUser()
+ {
+ return $this->user;
+ }
+
+ /**
+ * Opened file user.
+ *
+ * Generated from protobuf field string user = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setUser($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->user = $var;
+
+ return $this;
+ }
+
+ /**
+ * Opened file file type.
+ *
+ * Generated from protobuf field string file_type = 3;
+ * @return string
+ */
+ public function getFileType()
+ {
+ return $this->file_type;
+ }
+
+ /**
+ * Opened file file type.
+ *
+ * Generated from protobuf field string file_type = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setFileType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->file_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Opened file file path.
+ *
+ * Generated from protobuf field string file_path = 4;
+ * @return string
+ */
+ public function getFilePath()
+ {
+ return $this->file_path;
+ }
+
+ /**
+ * Opened file file path.
+ *
+ * Generated from protobuf field string file_path = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilePath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->file_path = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/OpenFileList.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/OpenFileList.php
new file mode 100644
index 000000000000..649827ef86a8
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/OpenFileList.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.OpenFileList
+ */
+class OpenFileList extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Open file details entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.OpenFileDetails entries = 1;
+ */
+ private $entries;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\OpenFileDetails>|\Google\Protobuf\Internal\RepeatedField $entries
+ * Open file details entries.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Open file details entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.OpenFileDetails entries = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEntries()
+ {
+ return $this->entries;
+ }
+
+ /**
+ * Open file details entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.OpenFileDetails entries = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\OpenFileDetails>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEntries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\OpenFileDetails::class);
+ $this->entries = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/OperatingSystemFamily.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/OperatingSystemFamily.php
new file mode 100644
index 000000000000..81224261c687
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/OperatingSystemFamily.php
@@ -0,0 +1,66 @@
+google.cloud.migrationcenter.v1.OperatingSystemFamily
+ */
+class OperatingSystemFamily
+{
+ /**
+ * Generated from protobuf enum OS_FAMILY_UNKNOWN = 0;
+ */
+ const OS_FAMILY_UNKNOWN = 0;
+ /**
+ * Microsoft Windows Server and Desktop.
+ *
+ * Generated from protobuf enum OS_FAMILY_WINDOWS = 1;
+ */
+ const OS_FAMILY_WINDOWS = 1;
+ /**
+ * Various Linux flavors.
+ *
+ * Generated from protobuf enum OS_FAMILY_LINUX = 2;
+ */
+ const OS_FAMILY_LINUX = 2;
+ /**
+ * Non-Linux Unix flavors.
+ *
+ * Generated from protobuf enum OS_FAMILY_UNIX = 3;
+ */
+ const OS_FAMILY_UNIX = 3;
+
+ private static $valueToName = [
+ self::OS_FAMILY_UNKNOWN => 'OS_FAMILY_UNKNOWN',
+ self::OS_FAMILY_WINDOWS => 'OS_FAMILY_WINDOWS',
+ self::OS_FAMILY_LINUX => 'OS_FAMILY_LINUX',
+ self::OS_FAMILY_UNIX => 'OS_FAMILY_UNIX',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/OperationMetadata.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/OperationMetadata.php
new file mode 100644
index 000000000000..4e1d8d863cdb
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/OperationMetadata.php
@@ -0,0 +1,307 @@
+google.cloud.migrationcenter.v1.OperationMetadata
+ */
+class OperationMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $target = '';
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $verb = '';
+ /**
+ * Output only. Human-readable status of the operation, if any.
+ *
+ * Generated from protobuf field string status_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $status_message = '';
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have been cancelled successfully
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $requested_cancellation = false;
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $api_version = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time the operation was created.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time the operation finished running.
+ * @type string $target
+ * Output only. Server-defined resource path for the target of the operation.
+ * @type string $verb
+ * Output only. Name of the verb executed by the operation.
+ * @type string $status_message
+ * Output only. Human-readable status of the operation, if any.
+ * @type bool $requested_cancellation
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have been cancelled successfully
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ * @type string $api_version
+ * Output only. API version used to start the operation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEndTime()
+ {
+ return $this->end_time;
+ }
+
+ public function hasEndTime()
+ {
+ return isset($this->end_time);
+ }
+
+ public function clearEndTime()
+ {
+ unset($this->end_time);
+ }
+
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getTarget()
+ {
+ return $this->target;
+ }
+
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setTarget($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getVerb()
+ {
+ return $this->verb;
+ }
+
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setVerb($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->verb = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Human-readable status of the operation, if any.
+ *
+ * Generated from protobuf field string status_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStatusMessage()
+ {
+ return $this->status_message;
+ }
+
+ /**
+ * Output only. Human-readable status of the operation, if any.
+ *
+ * Generated from protobuf field string status_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStatusMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->status_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have been cancelled successfully
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getRequestedCancellation()
+ {
+ return $this->requested_cancellation;
+ }
+
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have been cancelled successfully
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setRequestedCancellation($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->requested_cancellation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getApiVersion()
+ {
+ return $this->api_version;
+ }
+
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setApiVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->api_version = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/PerformanceSample.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/PerformanceSample.php
new file mode 100644
index 000000000000..4839a52ab473
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/PerformanceSample.php
@@ -0,0 +1,257 @@
+google.cloud.migrationcenter.v1.PerformanceSample
+ */
+class PerformanceSample extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Time the sample was collected.
+ * If omitted, the frame report time will be used.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp sample_time = 1;
+ */
+ protected $sample_time = null;
+ /**
+ * Memory usage sample.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MemoryUsageSample memory = 2;
+ */
+ protected $memory = null;
+ /**
+ * CPU usage sample.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.CpuUsageSample cpu = 3;
+ */
+ protected $cpu = null;
+ /**
+ * Network usage sample.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkUsageSample network = 4;
+ */
+ protected $network = null;
+ /**
+ * Disk usage sample.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DiskUsageSample disk = 5;
+ */
+ protected $disk = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $sample_time
+ * Time the sample was collected.
+ * If omitted, the frame report time will be used.
+ * @type \Google\Cloud\MigrationCenter\V1\MemoryUsageSample $memory
+ * Memory usage sample.
+ * @type \Google\Cloud\MigrationCenter\V1\CpuUsageSample $cpu
+ * CPU usage sample.
+ * @type \Google\Cloud\MigrationCenter\V1\NetworkUsageSample $network
+ * Network usage sample.
+ * @type \Google\Cloud\MigrationCenter\V1\DiskUsageSample $disk
+ * Disk usage sample.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Time the sample was collected.
+ * If omitted, the frame report time will be used.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp sample_time = 1;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getSampleTime()
+ {
+ return $this->sample_time;
+ }
+
+ public function hasSampleTime()
+ {
+ return isset($this->sample_time);
+ }
+
+ public function clearSampleTime()
+ {
+ unset($this->sample_time);
+ }
+
+ /**
+ * Time the sample was collected.
+ * If omitted, the frame report time will be used.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp sample_time = 1;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setSampleTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->sample_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Memory usage sample.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MemoryUsageSample memory = 2;
+ * @return \Google\Cloud\MigrationCenter\V1\MemoryUsageSample|null
+ */
+ public function getMemory()
+ {
+ return $this->memory;
+ }
+
+ public function hasMemory()
+ {
+ return isset($this->memory);
+ }
+
+ public function clearMemory()
+ {
+ unset($this->memory);
+ }
+
+ /**
+ * Memory usage sample.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MemoryUsageSample memory = 2;
+ * @param \Google\Cloud\MigrationCenter\V1\MemoryUsageSample $var
+ * @return $this
+ */
+ public function setMemory($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\MemoryUsageSample::class);
+ $this->memory = $var;
+
+ return $this;
+ }
+
+ /**
+ * CPU usage sample.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.CpuUsageSample cpu = 3;
+ * @return \Google\Cloud\MigrationCenter\V1\CpuUsageSample|null
+ */
+ public function getCpu()
+ {
+ return $this->cpu;
+ }
+
+ public function hasCpu()
+ {
+ return isset($this->cpu);
+ }
+
+ public function clearCpu()
+ {
+ unset($this->cpu);
+ }
+
+ /**
+ * CPU usage sample.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.CpuUsageSample cpu = 3;
+ * @param \Google\Cloud\MigrationCenter\V1\CpuUsageSample $var
+ * @return $this
+ */
+ public function setCpu($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\CpuUsageSample::class);
+ $this->cpu = $var;
+
+ return $this;
+ }
+
+ /**
+ * Network usage sample.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkUsageSample network = 4;
+ * @return \Google\Cloud\MigrationCenter\V1\NetworkUsageSample|null
+ */
+ public function getNetwork()
+ {
+ return $this->network;
+ }
+
+ public function hasNetwork()
+ {
+ return isset($this->network);
+ }
+
+ public function clearNetwork()
+ {
+ unset($this->network);
+ }
+
+ /**
+ * Network usage sample.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkUsageSample network = 4;
+ * @param \Google\Cloud\MigrationCenter\V1\NetworkUsageSample $var
+ * @return $this
+ */
+ public function setNetwork($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\NetworkUsageSample::class);
+ $this->network = $var;
+
+ return $this;
+ }
+
+ /**
+ * Disk usage sample.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DiskUsageSample disk = 5;
+ * @return \Google\Cloud\MigrationCenter\V1\DiskUsageSample|null
+ */
+ public function getDisk()
+ {
+ return $this->disk;
+ }
+
+ public function hasDisk()
+ {
+ return isset($this->disk);
+ }
+
+ public function clearDisk()
+ {
+ unset($this->disk);
+ }
+
+ /**
+ * Disk usage sample.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.DiskUsageSample disk = 5;
+ * @param \Google\Cloud\MigrationCenter\V1\DiskUsageSample $var
+ * @return $this
+ */
+ public function setDisk($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\DiskUsageSample::class);
+ $this->disk = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/PersistentDiskType.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/PersistentDiskType.php
new file mode 100644
index 000000000000..de8f9f782ac7
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/PersistentDiskType.php
@@ -0,0 +1,70 @@
+google.cloud.migrationcenter.v1.PersistentDiskType
+ */
+class PersistentDiskType
+{
+ /**
+ * Unspecified (default value).
+ * Selecting this value allows the system to use any disk type according
+ * to reported usage. This a good value to start with.
+ *
+ * Generated from protobuf enum PERSISTENT_DISK_TYPE_UNSPECIFIED = 0;
+ */
+ const PERSISTENT_DISK_TYPE_UNSPECIFIED = 0;
+ /**
+ * Standard HDD Persistent Disk.
+ *
+ * Generated from protobuf enum PERSISTENT_DISK_TYPE_STANDARD = 1;
+ */
+ const PERSISTENT_DISK_TYPE_STANDARD = 1;
+ /**
+ * Balanced Persistent Disk.
+ *
+ * Generated from protobuf enum PERSISTENT_DISK_TYPE_BALANCED = 2;
+ */
+ const PERSISTENT_DISK_TYPE_BALANCED = 2;
+ /**
+ * SSD Persistent Disk.
+ *
+ * Generated from protobuf enum PERSISTENT_DISK_TYPE_SSD = 3;
+ */
+ const PERSISTENT_DISK_TYPE_SSD = 3;
+
+ private static $valueToName = [
+ self::PERSISTENT_DISK_TYPE_UNSPECIFIED => 'PERSISTENT_DISK_TYPE_UNSPECIFIED',
+ self::PERSISTENT_DISK_TYPE_STANDARD => 'PERSISTENT_DISK_TYPE_STANDARD',
+ self::PERSISTENT_DISK_TYPE_BALANCED => 'PERSISTENT_DISK_TYPE_BALANCED',
+ self::PERSISTENT_DISK_TYPE_SSD => 'PERSISTENT_DISK_TYPE_SSD',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/PhysicalPlatformDetails.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/PhysicalPlatformDetails.php
new file mode 100644
index 000000000000..6865a5e414cc
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/PhysicalPlatformDetails.php
@@ -0,0 +1,75 @@
+google.cloud.migrationcenter.v1.PhysicalPlatformDetails
+ */
+class PhysicalPlatformDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Free text representation of the machine location.
+ * The format of this field should not be relied on. Different machines in the
+ * same location may have different string values for this field.
+ *
+ * Generated from protobuf field string location = 1;
+ */
+ protected $location = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $location
+ * Free text representation of the machine location.
+ * The format of this field should not be relied on. Different machines in the
+ * same location may have different string values for this field.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Free text representation of the machine location.
+ * The format of this field should not be relied on. Different machines in the
+ * same location may have different string values for this field.
+ *
+ * Generated from protobuf field string location = 1;
+ * @return string
+ */
+ public function getLocation()
+ {
+ return $this->location;
+ }
+
+ /**
+ * Free text representation of the machine location.
+ * The format of this field should not be relied on. Different machines in the
+ * same location may have different string values for this field.
+ *
+ * Generated from protobuf field string location = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setLocation($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->location = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/PlatformDetails.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/PlatformDetails.php
new file mode 100644
index 000000000000..997532b52d6a
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/PlatformDetails.php
@@ -0,0 +1,207 @@
+google.cloud.migrationcenter.v1.PlatformDetails
+ */
+class PlatformDetails extends \Google\Protobuf\Internal\Message
+{
+ protected $vendor_details;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MigrationCenter\V1\VmwarePlatformDetails $vmware_details
+ * VMware specific details.
+ * @type \Google\Cloud\MigrationCenter\V1\AwsEc2PlatformDetails $aws_ec2_details
+ * AWS EC2 specific details.
+ * @type \Google\Cloud\MigrationCenter\V1\AzureVmPlatformDetails $azure_vm_details
+ * Azure VM specific details.
+ * @type \Google\Cloud\MigrationCenter\V1\GenericPlatformDetails $generic_details
+ * Generic platform details.
+ * @type \Google\Cloud\MigrationCenter\V1\PhysicalPlatformDetails $physical_details
+ * Physical machines platform details.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * VMware specific details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwarePlatformDetails vmware_details = 1;
+ * @return \Google\Cloud\MigrationCenter\V1\VmwarePlatformDetails|null
+ */
+ public function getVmwareDetails()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasVmwareDetails()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * VMware specific details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwarePlatformDetails vmware_details = 1;
+ * @param \Google\Cloud\MigrationCenter\V1\VmwarePlatformDetails $var
+ * @return $this
+ */
+ public function setVmwareDetails($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\VmwarePlatformDetails::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * AWS EC2 specific details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AwsEc2PlatformDetails aws_ec2_details = 2;
+ * @return \Google\Cloud\MigrationCenter\V1\AwsEc2PlatformDetails|null
+ */
+ public function getAwsEc2Details()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasAwsEc2Details()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * AWS EC2 specific details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AwsEc2PlatformDetails aws_ec2_details = 2;
+ * @param \Google\Cloud\MigrationCenter\V1\AwsEc2PlatformDetails $var
+ * @return $this
+ */
+ public function setAwsEc2Details($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\AwsEc2PlatformDetails::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Azure VM specific details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AzureVmPlatformDetails azure_vm_details = 3;
+ * @return \Google\Cloud\MigrationCenter\V1\AzureVmPlatformDetails|null
+ */
+ public function getAzureVmDetails()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasAzureVmDetails()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Azure VM specific details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AzureVmPlatformDetails azure_vm_details = 3;
+ * @param \Google\Cloud\MigrationCenter\V1\AzureVmPlatformDetails $var
+ * @return $this
+ */
+ public function setAzureVmDetails($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\AzureVmPlatformDetails::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Generic platform details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GenericPlatformDetails generic_details = 4;
+ * @return \Google\Cloud\MigrationCenter\V1\GenericPlatformDetails|null
+ */
+ public function getGenericDetails()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasGenericDetails()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Generic platform details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.GenericPlatformDetails generic_details = 4;
+ * @param \Google\Cloud\MigrationCenter\V1\GenericPlatformDetails $var
+ * @return $this
+ */
+ public function setGenericDetails($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\GenericPlatformDetails::class);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Physical machines platform details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.PhysicalPlatformDetails physical_details = 5;
+ * @return \Google\Cloud\MigrationCenter\V1\PhysicalPlatformDetails|null
+ */
+ public function getPhysicalDetails()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasPhysicalDetails()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Physical machines platform details.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.PhysicalPlatformDetails physical_details = 5;
+ * @param \Google\Cloud\MigrationCenter\V1\PhysicalPlatformDetails $var
+ * @return $this
+ */
+ public function setPhysicalDetails($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\PhysicalPlatformDetails::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getVendorDetails()
+ {
+ return $this->whichOneof("vendor_details");
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/PreferenceSet.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/PreferenceSet.php
new file mode 100644
index 000000000000..e210335dcc6e
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/PreferenceSet.php
@@ -0,0 +1,267 @@
+google.cloud.migrationcenter.v1.PreferenceSet
+ */
+class PreferenceSet extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Name of the preference set.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Output only. The timestamp when the preference set was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The timestamp when the preference set was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * User-friendly display name. Maximum length is 63 characters.
+ *
+ * Generated from protobuf field string display_name = 4;
+ */
+ protected $display_name = '';
+ /**
+ * A description of the preference set.
+ *
+ * Generated from protobuf field string description = 5;
+ */
+ protected $description = '';
+ /**
+ * A set of preferences that applies to all virtual machines in the context.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VirtualMachinePreferences virtual_machine_preferences = 6;
+ */
+ protected $virtual_machine_preferences = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. Name of the preference set.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The timestamp when the preference set was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The timestamp when the preference set was last updated.
+ * @type string $display_name
+ * User-friendly display name. Maximum length is 63 characters.
+ * @type string $description
+ * A description of the preference set.
+ * @type \Google\Cloud\MigrationCenter\V1\VirtualMachinePreferences $virtual_machine_preferences
+ * A set of preferences that applies to all virtual machines in the context.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Name of the preference set.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. Name of the preference set.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The timestamp when the preference set was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The timestamp when the preference set was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The timestamp when the preference set was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The timestamp when the preference set was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * User-friendly display name. Maximum length is 63 characters.
+ *
+ * Generated from protobuf field string display_name = 4;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * User-friendly display name. Maximum length is 63 characters.
+ *
+ * Generated from protobuf field string display_name = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * A description of the preference set.
+ *
+ * Generated from protobuf field string description = 5;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * A description of the preference set.
+ *
+ * Generated from protobuf field string description = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * A set of preferences that applies to all virtual machines in the context.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VirtualMachinePreferences virtual_machine_preferences = 6;
+ * @return \Google\Cloud\MigrationCenter\V1\VirtualMachinePreferences|null
+ */
+ public function getVirtualMachinePreferences()
+ {
+ return $this->virtual_machine_preferences;
+ }
+
+ public function hasVirtualMachinePreferences()
+ {
+ return isset($this->virtual_machine_preferences);
+ }
+
+ public function clearVirtualMachinePreferences()
+ {
+ unset($this->virtual_machine_preferences);
+ }
+
+ /**
+ * A set of preferences that applies to all virtual machines in the context.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VirtualMachinePreferences virtual_machine_preferences = 6;
+ * @param \Google\Cloud\MigrationCenter\V1\VirtualMachinePreferences $var
+ * @return $this
+ */
+ public function setVirtualMachinePreferences($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\VirtualMachinePreferences::class);
+ $this->virtual_machine_preferences = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RegionPreferences.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RegionPreferences.php
new file mode 100644
index 000000000000..ad1a9da70136
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RegionPreferences.php
@@ -0,0 +1,83 @@
+google.cloud.migrationcenter.v1.RegionPreferences
+ */
+class RegionPreferences extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of preferred regions,
+ * ordered by the most preferred region first.
+ * Set only valid Google Cloud region names.
+ * See https://cloud.google.com/compute/docs/regions-zones
+ * for available regions.
+ *
+ * Generated from protobuf field repeated string preferred_regions = 1;
+ */
+ private $preferred_regions;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $preferred_regions
+ * A list of preferred regions,
+ * ordered by the most preferred region first.
+ * Set only valid Google Cloud region names.
+ * See https://cloud.google.com/compute/docs/regions-zones
+ * for available regions.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of preferred regions,
+ * ordered by the most preferred region first.
+ * Set only valid Google Cloud region names.
+ * See https://cloud.google.com/compute/docs/regions-zones
+ * for available regions.
+ *
+ * Generated from protobuf field repeated string preferred_regions = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPreferredRegions()
+ {
+ return $this->preferred_regions;
+ }
+
+ /**
+ * A list of preferred regions,
+ * ordered by the most preferred region first.
+ * Set only valid Google Cloud region names.
+ * See https://cloud.google.com/compute/docs/regions-zones
+ * for available regions.
+ *
+ * Generated from protobuf field repeated string preferred_regions = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPreferredRegions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->preferred_regions = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RemoveAssetsFromGroupRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RemoveAssetsFromGroupRequest.php
new file mode 100644
index 000000000000..249f733d7864
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RemoveAssetsFromGroupRequest.php
@@ -0,0 +1,253 @@
+google.cloud.migrationcenter.v1.RemoveAssetsFromGroupRequest
+ */
+class RemoveAssetsFromGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Group reference.
+ *
+ * Generated from protobuf field string group = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $group = '';
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+ /**
+ * Required. List of assets to be removed.
+ * The maximum number of assets that can be removed in a single request is
+ * 1000.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetList assets = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $assets = null;
+ /**
+ * Optional. When this value is set to `false` and one of the given assets is
+ * not an existing member of the group, the operation fails with a `Not Found`
+ * error. When set to `true` this situation is silently ignored by the server.
+ * Default value is `false`.
+ *
+ * Generated from protobuf field bool allow_missing = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $allow_missing = false;
+
+ /**
+ * @param string $group Required. Group reference. Please see
+ * {@see MigrationCenterClient::groupName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\RemoveAssetsFromGroupRequest
+ *
+ * @experimental
+ */
+ public static function build(string $group): self
+ {
+ return (new self())
+ ->setGroup($group);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $group
+ * Required. Group reference.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * @type \Google\Cloud\MigrationCenter\V1\AssetList $assets
+ * Required. List of assets to be removed.
+ * The maximum number of assets that can be removed in a single request is
+ * 1000.
+ * @type bool $allow_missing
+ * Optional. When this value is set to `false` and one of the given assets is
+ * not an existing member of the group, the operation fails with a `Not Found`
+ * error. When set to `true` this situation is silently ignored by the server.
+ * Default value is `false`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Group reference.
+ *
+ * Generated from protobuf field string group = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getGroup()
+ {
+ return $this->group;
+ }
+
+ /**
+ * Required. Group reference.
+ *
+ * Generated from protobuf field string group = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setGroup($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->group = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. List of assets to be removed.
+ * The maximum number of assets that can be removed in a single request is
+ * 1000.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetList assets = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\MigrationCenter\V1\AssetList|null
+ */
+ public function getAssets()
+ {
+ return $this->assets;
+ }
+
+ public function hasAssets()
+ {
+ return isset($this->assets);
+ }
+
+ public function clearAssets()
+ {
+ unset($this->assets);
+ }
+
+ /**
+ * Required. List of assets to be removed.
+ * The maximum number of assets that can be removed in a single request is
+ * 1000.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.AssetList assets = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\MigrationCenter\V1\AssetList $var
+ * @return $this
+ */
+ public function setAssets($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\AssetList::class);
+ $this->assets = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. When this value is set to `false` and one of the given assets is
+ * not an existing member of the group, the operation fails with a `Not Found`
+ * error. When set to `true` this situation is silently ignored by the server.
+ * Default value is `false`.
+ *
+ * Generated from protobuf field bool allow_missing = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getAllowMissing()
+ {
+ return $this->allow_missing;
+ }
+
+ /**
+ * Optional. When this value is set to `false` and one of the given assets is
+ * not an existing member of the group, the operation fails with a `Not Found`
+ * error. When set to `true` this situation is silently ignored by the server.
+ * Default value is `false`.
+ *
+ * Generated from protobuf field bool allow_missing = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setAllowMissing($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->allow_missing = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Report.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Report.php
new file mode 100644
index 000000000000..8fa528e7443d
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Report.php
@@ -0,0 +1,335 @@
+google.cloud.migrationcenter.v1.Report
+ */
+class Report extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Name of resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Output only. Creation timestamp.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Last update timestamp.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * User-friendly display name. Maximum length is 63 characters.
+ *
+ * Generated from protobuf field string display_name = 4;
+ */
+ protected $display_name = '';
+ /**
+ * Free-text description.
+ *
+ * Generated from protobuf field string description = 5;
+ */
+ protected $description = '';
+ /**
+ * Report type.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Report.Type type = 6;
+ */
+ protected $type = 0;
+ /**
+ * Report creation state.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Report.State state = 7;
+ */
+ protected $state = 0;
+ /**
+ * Output only. Summary view of the Report.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary summary = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $summary = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. Name of resource.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Creation timestamp.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. Last update timestamp.
+ * @type string $display_name
+ * User-friendly display name. Maximum length is 63 characters.
+ * @type string $description
+ * Free-text description.
+ * @type int $type
+ * Report type.
+ * @type int $state
+ * Report creation state.
+ * @type \Google\Cloud\MigrationCenter\V1\ReportSummary $summary
+ * Output only. Summary view of the Report.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Name of resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. Name of resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Creation timestamp.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. Creation timestamp.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Last update timestamp.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. Last update timestamp.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * User-friendly display name. Maximum length is 63 characters.
+ *
+ * Generated from protobuf field string display_name = 4;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * User-friendly display name. Maximum length is 63 characters.
+ *
+ * Generated from protobuf field string display_name = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Free-text description.
+ *
+ * Generated from protobuf field string description = 5;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Free-text description.
+ *
+ * Generated from protobuf field string description = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Report type.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Report.Type type = 6;
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Report type.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Report.Type type = 6;
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\Report\Type::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Report creation state.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Report.State state = 7;
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Report creation state.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Report.State state = 7;
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\Report\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Summary view of the Report.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary summary = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\MigrationCenter\V1\ReportSummary|null
+ */
+ public function getSummary()
+ {
+ return $this->summary;
+ }
+
+ public function hasSummary()
+ {
+ return isset($this->summary);
+ }
+
+ public function clearSummary()
+ {
+ unset($this->summary);
+ }
+
+ /**
+ * Output only. Summary view of the Report.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary summary = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\MigrationCenter\V1\ReportSummary $var
+ * @return $this
+ */
+ public function setSummary($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ReportSummary::class);
+ $this->summary = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Report/State.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Report/State.php
new file mode 100644
index 000000000000..0e4fdea1154b
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Report/State.php
@@ -0,0 +1,71 @@
+google.cloud.migrationcenter.v1.Report.State
+ */
+class State
+{
+ /**
+ * Default Report creation state.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * Creating Report.
+ *
+ * Generated from protobuf enum PENDING = 1;
+ */
+ const PENDING = 1;
+ /**
+ * Successfully created Report.
+ *
+ * Generated from protobuf enum SUCCEEDED = 2;
+ */
+ const SUCCEEDED = 2;
+ /**
+ * Failed to create Report.
+ *
+ * Generated from protobuf enum FAILED = 3;
+ */
+ const FAILED = 3;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::PENDING => 'PENDING',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::FAILED => 'FAILED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(State::class, \Google\Cloud\MigrationCenter\V1\Report_State::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Report/Type.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Report/Type.php
new file mode 100644
index 000000000000..930d1708a900
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Report/Type.php
@@ -0,0 +1,57 @@
+google.cloud.migrationcenter.v1.Report.Type
+ */
+class Type
+{
+ /**
+ * Default Report type.
+ *
+ * Generated from protobuf enum TYPE_UNSPECIFIED = 0;
+ */
+ const TYPE_UNSPECIFIED = 0;
+ /**
+ * Total cost of ownership Report type.
+ *
+ * Generated from protobuf enum TOTAL_COST_OF_OWNERSHIP = 1;
+ */
+ const TOTAL_COST_OF_OWNERSHIP = 1;
+
+ private static $valueToName = [
+ self::TYPE_UNSPECIFIED => 'TYPE_UNSPECIFIED',
+ self::TOTAL_COST_OF_OWNERSHIP => 'TOTAL_COST_OF_OWNERSHIP',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Type::class, \Google\Cloud\MigrationCenter\V1\Report_Type::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportAssetFramesRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportAssetFramesRequest.php
new file mode 100644
index 000000000000..f3e6443020f7
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportAssetFramesRequest.php
@@ -0,0 +1,145 @@
+google.cloud.migrationcenter.v1.ReportAssetFramesRequest
+ */
+class ReportAssetFramesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent of the resource.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $parent = '';
+ /**
+ * Collection of frames data.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Frames frames = 2;
+ */
+ protected $frames = null;
+ /**
+ * Required. Reference to a source.
+ *
+ * Generated from protobuf field string source = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $source = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent of the resource.
+ * @type \Google\Cloud\MigrationCenter\V1\Frames $frames
+ * Collection of frames data.
+ * @type string $source
+ * Required. Reference to a source.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent of the resource.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent of the resource.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Collection of frames data.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Frames frames = 2;
+ * @return \Google\Cloud\MigrationCenter\V1\Frames|null
+ */
+ public function getFrames()
+ {
+ return $this->frames;
+ }
+
+ public function hasFrames()
+ {
+ return isset($this->frames);
+ }
+
+ public function clearFrames()
+ {
+ unset($this->frames);
+ }
+
+ /**
+ * Collection of frames data.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Frames frames = 2;
+ * @param \Google\Cloud\MigrationCenter\V1\Frames $var
+ * @return $this
+ */
+ public function setFrames($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\Frames::class);
+ $this->frames = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Reference to a source.
+ *
+ * Generated from protobuf field string source = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getSource()
+ {
+ return $this->source;
+ }
+
+ /**
+ * Required. Reference to a source.
+ *
+ * Generated from protobuf field string source = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setSource($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->source = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportAssetFramesResponse.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportAssetFramesResponse.php
new file mode 100644
index 000000000000..b0952ef378ff
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportAssetFramesResponse.php
@@ -0,0 +1,33 @@
+google.cloud.migrationcenter.v1.ReportAssetFramesResponse
+ */
+class ReportAssetFramesResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportConfig.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportConfig.php
new file mode 100644
index 000000000000..e115833e8bca
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportConfig.php
@@ -0,0 +1,258 @@
+google.cloud.migrationcenter.v1.ReportConfig
+ */
+class ReportConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Name of resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Output only. The timestamp when the resource was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The timestamp when the resource was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * User-friendly display name. Maximum length is 63 characters.
+ *
+ * Generated from protobuf field string display_name = 4;
+ */
+ protected $display_name = '';
+ /**
+ * Free-text description.
+ *
+ * Generated from protobuf field string description = 5;
+ */
+ protected $description = '';
+ /**
+ * Required. Collection of combinations of groups and preference sets.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportConfig.GroupPreferenceSetAssignment group_preferenceset_assignments = 6 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $group_preferenceset_assignments;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. Name of resource.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The timestamp when the resource was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The timestamp when the resource was last updated.
+ * @type string $display_name
+ * User-friendly display name. Maximum length is 63 characters.
+ * @type string $description
+ * Free-text description.
+ * @type array<\Google\Cloud\MigrationCenter\V1\ReportConfig\GroupPreferenceSetAssignment>|\Google\Protobuf\Internal\RepeatedField $group_preferenceset_assignments
+ * Required. Collection of combinations of groups and preference sets.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Name of resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. Name of resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The timestamp when the resource was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The timestamp when the resource was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The timestamp when the resource was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The timestamp when the resource was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * User-friendly display name. Maximum length is 63 characters.
+ *
+ * Generated from protobuf field string display_name = 4;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * User-friendly display name. Maximum length is 63 characters.
+ *
+ * Generated from protobuf field string display_name = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Free-text description.
+ *
+ * Generated from protobuf field string description = 5;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Free-text description.
+ *
+ * Generated from protobuf field string description = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Collection of combinations of groups and preference sets.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportConfig.GroupPreferenceSetAssignment group_preferenceset_assignments = 6 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getGroupPreferencesetAssignments()
+ {
+ return $this->group_preferenceset_assignments;
+ }
+
+ /**
+ * Required. Collection of combinations of groups and preference sets.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportConfig.GroupPreferenceSetAssignment group_preferenceset_assignments = 6 [(.google.api.field_behavior) = REQUIRED];
+ * @param array<\Google\Cloud\MigrationCenter\V1\ReportConfig\GroupPreferenceSetAssignment>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setGroupPreferencesetAssignments($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ReportConfig\GroupPreferenceSetAssignment::class);
+ $this->group_preferenceset_assignments = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportConfig/GroupPreferenceSetAssignment.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportConfig/GroupPreferenceSetAssignment.php
new file mode 100644
index 000000000000..1f3b30434183
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportConfig/GroupPreferenceSetAssignment.php
@@ -0,0 +1,104 @@
+google.cloud.migrationcenter.v1.ReportConfig.GroupPreferenceSetAssignment
+ */
+class GroupPreferenceSetAssignment extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the group.
+ *
+ * Generated from protobuf field string group = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $group = '';
+ /**
+ * Required. Name of the Preference Set.
+ *
+ * Generated from protobuf field string preference_set = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $preference_set = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $group
+ * Required. Name of the group.
+ * @type string $preference_set
+ * Required. Name of the Preference Set.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the group.
+ *
+ * Generated from protobuf field string group = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getGroup()
+ {
+ return $this->group;
+ }
+
+ /**
+ * Required. Name of the group.
+ *
+ * Generated from protobuf field string group = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setGroup($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->group = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Name of the Preference Set.
+ *
+ * Generated from protobuf field string preference_set = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getPreferenceSet()
+ {
+ return $this->preference_set;
+ }
+
+ /**
+ * Required. Name of the Preference Set.
+ *
+ * Generated from protobuf field string preference_set = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setPreferenceSet($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->preference_set = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(GroupPreferenceSetAssignment::class, \Google\Cloud\MigrationCenter\V1\ReportConfig_GroupPreferenceSetAssignment::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary.php
new file mode 100644
index 000000000000..a4ddcabde91d
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary.php
@@ -0,0 +1,112 @@
+google.cloud.migrationcenter.v1.ReportSummary
+ */
+class ReportSummary extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Aggregate statistics for all the assets across all the groups.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.AssetAggregateStats all_assets_stats = 1;
+ */
+ protected $all_assets_stats = null;
+ /**
+ * Findings for each Group included in this report.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.GroupFinding group_findings = 2;
+ */
+ private $group_findings;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MigrationCenter\V1\ReportSummary\AssetAggregateStats $all_assets_stats
+ * Aggregate statistics for all the assets across all the groups.
+ * @type array<\Google\Cloud\MigrationCenter\V1\ReportSummary\GroupFinding>|\Google\Protobuf\Internal\RepeatedField $group_findings
+ * Findings for each Group included in this report.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Aggregate statistics for all the assets across all the groups.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.AssetAggregateStats all_assets_stats = 1;
+ * @return \Google\Cloud\MigrationCenter\V1\ReportSummary\AssetAggregateStats|null
+ */
+ public function getAllAssetsStats()
+ {
+ return $this->all_assets_stats;
+ }
+
+ public function hasAllAssetsStats()
+ {
+ return isset($this->all_assets_stats);
+ }
+
+ public function clearAllAssetsStats()
+ {
+ unset($this->all_assets_stats);
+ }
+
+ /**
+ * Aggregate statistics for all the assets across all the groups.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.AssetAggregateStats all_assets_stats = 1;
+ * @param \Google\Cloud\MigrationCenter\V1\ReportSummary\AssetAggregateStats $var
+ * @return $this
+ */
+ public function setAllAssetsStats($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ReportSummary\AssetAggregateStats::class);
+ $this->all_assets_stats = $var;
+
+ return $this;
+ }
+
+ /**
+ * Findings for each Group included in this report.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.GroupFinding group_findings = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getGroupFindings()
+ {
+ return $this->group_findings;
+ }
+
+ /**
+ * Findings for each Group included in this report.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.GroupFinding group_findings = 2;
+ * @param array<\Google\Cloud\MigrationCenter\V1\ReportSummary\GroupFinding>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setGroupFindings($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ReportSummary\GroupFinding::class);
+ $this->group_findings = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/AssetAggregateStats.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/AssetAggregateStats.php
new file mode 100644
index 000000000000..84a7c1e88454
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/AssetAggregateStats.php
@@ -0,0 +1,436 @@
+google.cloud.migrationcenter.v1.ReportSummary.AssetAggregateStats
+ */
+class AssetAggregateStats extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Sum of the memory in bytes of all the assets in this collection.
+ *
+ * Generated from protobuf field int64 total_memory_bytes = 1;
+ */
+ protected $total_memory_bytes = 0;
+ /**
+ * Sum of persistent storage in bytes of all the assets in this collection.
+ *
+ * Generated from protobuf field int64 total_storage_bytes = 2;
+ */
+ protected $total_storage_bytes = 0;
+ /**
+ * Sum of the CPU core count of all the assets in this collection.
+ *
+ * Generated from protobuf field int64 total_cores = 3;
+ */
+ protected $total_cores = 0;
+ /**
+ * Count of the number of unique assets in this collection.
+ *
+ * Generated from protobuf field int64 total_assets = 4;
+ */
+ protected $total_assets = 0;
+ /**
+ * Total memory split into Used/Free buckets.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.UtilizationChartData memory_utilization_chart = 5;
+ */
+ protected $memory_utilization_chart = null;
+ /**
+ * Total memory split into Used/Free buckets.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.UtilizationChartData storage_utilization_chart = 6;
+ */
+ protected $storage_utilization_chart = null;
+ /**
+ * Count of assets grouped by Operating System families.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.ChartData operating_system = 7;
+ */
+ protected $operating_system = null;
+ /**
+ * Histogram showing a distribution of CPU core counts.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.HistogramChartData core_count_histogram = 8;
+ */
+ protected $core_count_histogram = null;
+ /**
+ * Histogram showing a distribution of memory sizes.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.HistogramChartData memory_bytes_histogram = 9;
+ */
+ protected $memory_bytes_histogram = null;
+ /**
+ * Histogram showing a distribution of memory sizes.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.HistogramChartData storage_bytes_histogram = 10;
+ */
+ protected $storage_bytes_histogram = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $total_memory_bytes
+ * Sum of the memory in bytes of all the assets in this collection.
+ * @type int|string $total_storage_bytes
+ * Sum of persistent storage in bytes of all the assets in this collection.
+ * @type int|string $total_cores
+ * Sum of the CPU core count of all the assets in this collection.
+ * @type int|string $total_assets
+ * Count of the number of unique assets in this collection.
+ * @type \Google\Cloud\MigrationCenter\V1\ReportSummary\UtilizationChartData $memory_utilization_chart
+ * Total memory split into Used/Free buckets.
+ * @type \Google\Cloud\MigrationCenter\V1\ReportSummary\UtilizationChartData $storage_utilization_chart
+ * Total memory split into Used/Free buckets.
+ * @type \Google\Cloud\MigrationCenter\V1\ReportSummary\ChartData $operating_system
+ * Count of assets grouped by Operating System families.
+ * @type \Google\Cloud\MigrationCenter\V1\ReportSummary\HistogramChartData $core_count_histogram
+ * Histogram showing a distribution of CPU core counts.
+ * @type \Google\Cloud\MigrationCenter\V1\ReportSummary\HistogramChartData $memory_bytes_histogram
+ * Histogram showing a distribution of memory sizes.
+ * @type \Google\Cloud\MigrationCenter\V1\ReportSummary\HistogramChartData $storage_bytes_histogram
+ * Histogram showing a distribution of memory sizes.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Sum of the memory in bytes of all the assets in this collection.
+ *
+ * Generated from protobuf field int64 total_memory_bytes = 1;
+ * @return int|string
+ */
+ public function getTotalMemoryBytes()
+ {
+ return $this->total_memory_bytes;
+ }
+
+ /**
+ * Sum of the memory in bytes of all the assets in this collection.
+ *
+ * Generated from protobuf field int64 total_memory_bytes = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setTotalMemoryBytes($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->total_memory_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sum of persistent storage in bytes of all the assets in this collection.
+ *
+ * Generated from protobuf field int64 total_storage_bytes = 2;
+ * @return int|string
+ */
+ public function getTotalStorageBytes()
+ {
+ return $this->total_storage_bytes;
+ }
+
+ /**
+ * Sum of persistent storage in bytes of all the assets in this collection.
+ *
+ * Generated from protobuf field int64 total_storage_bytes = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setTotalStorageBytes($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->total_storage_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sum of the CPU core count of all the assets in this collection.
+ *
+ * Generated from protobuf field int64 total_cores = 3;
+ * @return int|string
+ */
+ public function getTotalCores()
+ {
+ return $this->total_cores;
+ }
+
+ /**
+ * Sum of the CPU core count of all the assets in this collection.
+ *
+ * Generated from protobuf field int64 total_cores = 3;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setTotalCores($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->total_cores = $var;
+
+ return $this;
+ }
+
+ /**
+ * Count of the number of unique assets in this collection.
+ *
+ * Generated from protobuf field int64 total_assets = 4;
+ * @return int|string
+ */
+ public function getTotalAssets()
+ {
+ return $this->total_assets;
+ }
+
+ /**
+ * Count of the number of unique assets in this collection.
+ *
+ * Generated from protobuf field int64 total_assets = 4;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setTotalAssets($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->total_assets = $var;
+
+ return $this;
+ }
+
+ /**
+ * Total memory split into Used/Free buckets.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.UtilizationChartData memory_utilization_chart = 5;
+ * @return \Google\Cloud\MigrationCenter\V1\ReportSummary\UtilizationChartData|null
+ */
+ public function getMemoryUtilizationChart()
+ {
+ return $this->memory_utilization_chart;
+ }
+
+ public function hasMemoryUtilizationChart()
+ {
+ return isset($this->memory_utilization_chart);
+ }
+
+ public function clearMemoryUtilizationChart()
+ {
+ unset($this->memory_utilization_chart);
+ }
+
+ /**
+ * Total memory split into Used/Free buckets.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.UtilizationChartData memory_utilization_chart = 5;
+ * @param \Google\Cloud\MigrationCenter\V1\ReportSummary\UtilizationChartData $var
+ * @return $this
+ */
+ public function setMemoryUtilizationChart($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ReportSummary\UtilizationChartData::class);
+ $this->memory_utilization_chart = $var;
+
+ return $this;
+ }
+
+ /**
+ * Total memory split into Used/Free buckets.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.UtilizationChartData storage_utilization_chart = 6;
+ * @return \Google\Cloud\MigrationCenter\V1\ReportSummary\UtilizationChartData|null
+ */
+ public function getStorageUtilizationChart()
+ {
+ return $this->storage_utilization_chart;
+ }
+
+ public function hasStorageUtilizationChart()
+ {
+ return isset($this->storage_utilization_chart);
+ }
+
+ public function clearStorageUtilizationChart()
+ {
+ unset($this->storage_utilization_chart);
+ }
+
+ /**
+ * Total memory split into Used/Free buckets.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.UtilizationChartData storage_utilization_chart = 6;
+ * @param \Google\Cloud\MigrationCenter\V1\ReportSummary\UtilizationChartData $var
+ * @return $this
+ */
+ public function setStorageUtilizationChart($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ReportSummary\UtilizationChartData::class);
+ $this->storage_utilization_chart = $var;
+
+ return $this;
+ }
+
+ /**
+ * Count of assets grouped by Operating System families.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.ChartData operating_system = 7;
+ * @return \Google\Cloud\MigrationCenter\V1\ReportSummary\ChartData|null
+ */
+ public function getOperatingSystem()
+ {
+ return $this->operating_system;
+ }
+
+ public function hasOperatingSystem()
+ {
+ return isset($this->operating_system);
+ }
+
+ public function clearOperatingSystem()
+ {
+ unset($this->operating_system);
+ }
+
+ /**
+ * Count of assets grouped by Operating System families.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.ChartData operating_system = 7;
+ * @param \Google\Cloud\MigrationCenter\V1\ReportSummary\ChartData $var
+ * @return $this
+ */
+ public function setOperatingSystem($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ReportSummary\ChartData::class);
+ $this->operating_system = $var;
+
+ return $this;
+ }
+
+ /**
+ * Histogram showing a distribution of CPU core counts.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.HistogramChartData core_count_histogram = 8;
+ * @return \Google\Cloud\MigrationCenter\V1\ReportSummary\HistogramChartData|null
+ */
+ public function getCoreCountHistogram()
+ {
+ return $this->core_count_histogram;
+ }
+
+ public function hasCoreCountHistogram()
+ {
+ return isset($this->core_count_histogram);
+ }
+
+ public function clearCoreCountHistogram()
+ {
+ unset($this->core_count_histogram);
+ }
+
+ /**
+ * Histogram showing a distribution of CPU core counts.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.HistogramChartData core_count_histogram = 8;
+ * @param \Google\Cloud\MigrationCenter\V1\ReportSummary\HistogramChartData $var
+ * @return $this
+ */
+ public function setCoreCountHistogram($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ReportSummary\HistogramChartData::class);
+ $this->core_count_histogram = $var;
+
+ return $this;
+ }
+
+ /**
+ * Histogram showing a distribution of memory sizes.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.HistogramChartData memory_bytes_histogram = 9;
+ * @return \Google\Cloud\MigrationCenter\V1\ReportSummary\HistogramChartData|null
+ */
+ public function getMemoryBytesHistogram()
+ {
+ return $this->memory_bytes_histogram;
+ }
+
+ public function hasMemoryBytesHistogram()
+ {
+ return isset($this->memory_bytes_histogram);
+ }
+
+ public function clearMemoryBytesHistogram()
+ {
+ unset($this->memory_bytes_histogram);
+ }
+
+ /**
+ * Histogram showing a distribution of memory sizes.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.HistogramChartData memory_bytes_histogram = 9;
+ * @param \Google\Cloud\MigrationCenter\V1\ReportSummary\HistogramChartData $var
+ * @return $this
+ */
+ public function setMemoryBytesHistogram($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ReportSummary\HistogramChartData::class);
+ $this->memory_bytes_histogram = $var;
+
+ return $this;
+ }
+
+ /**
+ * Histogram showing a distribution of memory sizes.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.HistogramChartData storage_bytes_histogram = 10;
+ * @return \Google\Cloud\MigrationCenter\V1\ReportSummary\HistogramChartData|null
+ */
+ public function getStorageBytesHistogram()
+ {
+ return $this->storage_bytes_histogram;
+ }
+
+ public function hasStorageBytesHistogram()
+ {
+ return isset($this->storage_bytes_histogram);
+ }
+
+ public function clearStorageBytesHistogram()
+ {
+ unset($this->storage_bytes_histogram);
+ }
+
+ /**
+ * Histogram showing a distribution of memory sizes.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.HistogramChartData storage_bytes_histogram = 10;
+ * @param \Google\Cloud\MigrationCenter\V1\ReportSummary\HistogramChartData $var
+ * @return $this
+ */
+ public function setStorageBytesHistogram($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ReportSummary\HistogramChartData::class);
+ $this->storage_bytes_histogram = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(AssetAggregateStats::class, \Google\Cloud\MigrationCenter\V1\ReportSummary_AssetAggregateStats::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/ChartData.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/ChartData.php
new file mode 100644
index 000000000000..d4db831af724
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/ChartData.php
@@ -0,0 +1,78 @@
+google.cloud.migrationcenter.v1.ReportSummary.ChartData
+ */
+class ChartData extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Each data point in the chart is represented as a name-value pair
+ * with the name being the x-axis label, and the value being the y-axis
+ * value.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.ChartData.DataPoint data_points = 1;
+ */
+ private $data_points;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\ReportSummary\ChartData\DataPoint>|\Google\Protobuf\Internal\RepeatedField $data_points
+ * Each data point in the chart is represented as a name-value pair
+ * with the name being the x-axis label, and the value being the y-axis
+ * value.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Each data point in the chart is represented as a name-value pair
+ * with the name being the x-axis label, and the value being the y-axis
+ * value.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.ChartData.DataPoint data_points = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDataPoints()
+ {
+ return $this->data_points;
+ }
+
+ /**
+ * Each data point in the chart is represented as a name-value pair
+ * with the name being the x-axis label, and the value being the y-axis
+ * value.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.ChartData.DataPoint data_points = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\ReportSummary\ChartData\DataPoint>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDataPoints($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ReportSummary\ChartData\DataPoint::class);
+ $this->data_points = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ChartData::class, \Google\Cloud\MigrationCenter\V1\ReportSummary_ChartData::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/ChartData/DataPoint.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/ChartData/DataPoint.php
new file mode 100644
index 000000000000..b2bea49da9ac
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/ChartData/DataPoint.php
@@ -0,0 +1,104 @@
+google.cloud.migrationcenter.v1.ReportSummary.ChartData.DataPoint
+ */
+class DataPoint extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The X-axis label for this data point.
+ *
+ * Generated from protobuf field string label = 1;
+ */
+ protected $label = '';
+ /**
+ * The Y-axis value for this data point.
+ *
+ * Generated from protobuf field double value = 2;
+ */
+ protected $value = 0.0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $label
+ * The X-axis label for this data point.
+ * @type float $value
+ * The Y-axis value for this data point.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The X-axis label for this data point.
+ *
+ * Generated from protobuf field string label = 1;
+ * @return string
+ */
+ public function getLabel()
+ {
+ return $this->label;
+ }
+
+ /**
+ * The X-axis label for this data point.
+ *
+ * Generated from protobuf field string label = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setLabel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->label = $var;
+
+ return $this;
+ }
+
+ /**
+ * The Y-axis value for this data point.
+ *
+ * Generated from protobuf field double value = 2;
+ * @return float
+ */
+ public function getValue()
+ {
+ return $this->value;
+ }
+
+ /**
+ * The Y-axis value for this data point.
+ *
+ * Generated from protobuf field double value = 2;
+ * @param float $var
+ * @return $this
+ */
+ public function setValue($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->value = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(DataPoint::class, \Google\Cloud\MigrationCenter\V1\ReportSummary_ChartData_DataPoint::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/ComputeEngineFinding.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/ComputeEngineFinding.php
new file mode 100644
index 000000000000..ba31b6aae2fc
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/ComputeEngineFinding.php
@@ -0,0 +1,172 @@
+google.cloud.migrationcenter.v1.ReportSummary.ComputeEngineFinding
+ */
+class ComputeEngineFinding extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Set of regions in which the assets were allocated.
+ *
+ * Generated from protobuf field repeated string allocated_regions = 1;
+ */
+ private $allocated_regions;
+ /**
+ * Count of assets which were allocated.
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 2;
+ */
+ protected $allocated_asset_count = 0;
+ /**
+ * Distribution of assets based on the Machine Series.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.MachineSeriesAllocation machine_series_allocations = 3;
+ */
+ private $machine_series_allocations;
+ /**
+ * Set of disk types allocated to assets.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.PersistentDiskType allocated_disk_types = 4;
+ */
+ private $allocated_disk_types;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $allocated_regions
+ * Set of regions in which the assets were allocated.
+ * @type int|string $allocated_asset_count
+ * Count of assets which were allocated.
+ * @type array<\Google\Cloud\MigrationCenter\V1\ReportSummary\MachineSeriesAllocation>|\Google\Protobuf\Internal\RepeatedField $machine_series_allocations
+ * Distribution of assets based on the Machine Series.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $allocated_disk_types
+ * Set of disk types allocated to assets.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Set of regions in which the assets were allocated.
+ *
+ * Generated from protobuf field repeated string allocated_regions = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAllocatedRegions()
+ {
+ return $this->allocated_regions;
+ }
+
+ /**
+ * Set of regions in which the assets were allocated.
+ *
+ * Generated from protobuf field repeated string allocated_regions = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAllocatedRegions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->allocated_regions = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Count of assets which were allocated.
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 2;
+ * @return int|string
+ */
+ public function getAllocatedAssetCount()
+ {
+ return $this->allocated_asset_count;
+ }
+
+ /**
+ * Count of assets which were allocated.
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setAllocatedAssetCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->allocated_asset_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Distribution of assets based on the Machine Series.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.MachineSeriesAllocation machine_series_allocations = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getMachineSeriesAllocations()
+ {
+ return $this->machine_series_allocations;
+ }
+
+ /**
+ * Distribution of assets based on the Machine Series.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.MachineSeriesAllocation machine_series_allocations = 3;
+ * @param array<\Google\Cloud\MigrationCenter\V1\ReportSummary\MachineSeriesAllocation>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setMachineSeriesAllocations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ReportSummary\MachineSeriesAllocation::class);
+ $this->machine_series_allocations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Set of disk types allocated to assets.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.PersistentDiskType allocated_disk_types = 4;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAllocatedDiskTypes()
+ {
+ return $this->allocated_disk_types;
+ }
+
+ /**
+ * Set of disk types allocated to assets.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.PersistentDiskType allocated_disk_types = 4;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAllocatedDiskTypes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\MigrationCenter\V1\PersistentDiskType::class);
+ $this->allocated_disk_types = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ComputeEngineFinding::class, \Google\Cloud\MigrationCenter\V1\ReportSummary_ComputeEngineFinding::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/GroupFinding.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/GroupFinding.php
new file mode 100644
index 000000000000..719521989d08
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/GroupFinding.php
@@ -0,0 +1,221 @@
+google.cloud.migrationcenter.v1.ReportSummary.GroupFinding
+ */
+class GroupFinding extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Display Name for the Group.
+ *
+ * Generated from protobuf field string display_name = 1;
+ */
+ protected $display_name = '';
+ /**
+ * Description for the Group.
+ *
+ * Generated from protobuf field string description = 2;
+ */
+ protected $description = '';
+ /**
+ * Summary statistics for all the assets in this group.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.AssetAggregateStats asset_aggregate_stats = 3;
+ */
+ protected $asset_aggregate_stats = null;
+ /**
+ * This field is deprecated, do not rely on it having a value.
+ *
+ * Generated from protobuf field int64 overlapping_asset_count = 4 [deprecated = true];
+ * @deprecated
+ */
+ protected $overlapping_asset_count = 0;
+ /**
+ * Findings for each of the PreferenceSets for this group.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.GroupPreferenceSetFinding preference_set_findings = 5;
+ */
+ private $preference_set_findings;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $display_name
+ * Display Name for the Group.
+ * @type string $description
+ * Description for the Group.
+ * @type \Google\Cloud\MigrationCenter\V1\ReportSummary\AssetAggregateStats $asset_aggregate_stats
+ * Summary statistics for all the assets in this group.
+ * @type int|string $overlapping_asset_count
+ * This field is deprecated, do not rely on it having a value.
+ * @type array<\Google\Cloud\MigrationCenter\V1\ReportSummary\GroupPreferenceSetFinding>|\Google\Protobuf\Internal\RepeatedField $preference_set_findings
+ * Findings for each of the PreferenceSets for this group.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Display Name for the Group.
+ *
+ * Generated from protobuf field string display_name = 1;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * Display Name for the Group.
+ *
+ * Generated from protobuf field string display_name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description for the Group.
+ *
+ * Generated from protobuf field string description = 2;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Description for the Group.
+ *
+ * Generated from protobuf field string description = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Summary statistics for all the assets in this group.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.AssetAggregateStats asset_aggregate_stats = 3;
+ * @return \Google\Cloud\MigrationCenter\V1\ReportSummary\AssetAggregateStats|null
+ */
+ public function getAssetAggregateStats()
+ {
+ return $this->asset_aggregate_stats;
+ }
+
+ public function hasAssetAggregateStats()
+ {
+ return isset($this->asset_aggregate_stats);
+ }
+
+ public function clearAssetAggregateStats()
+ {
+ unset($this->asset_aggregate_stats);
+ }
+
+ /**
+ * Summary statistics for all the assets in this group.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.AssetAggregateStats asset_aggregate_stats = 3;
+ * @param \Google\Cloud\MigrationCenter\V1\ReportSummary\AssetAggregateStats $var
+ * @return $this
+ */
+ public function setAssetAggregateStats($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ReportSummary\AssetAggregateStats::class);
+ $this->asset_aggregate_stats = $var;
+
+ return $this;
+ }
+
+ /**
+ * This field is deprecated, do not rely on it having a value.
+ *
+ * Generated from protobuf field int64 overlapping_asset_count = 4 [deprecated = true];
+ * @return int|string
+ * @deprecated
+ */
+ public function getOverlappingAssetCount()
+ {
+ @trigger_error('overlapping_asset_count is deprecated.', E_USER_DEPRECATED);
+ return $this->overlapping_asset_count;
+ }
+
+ /**
+ * This field is deprecated, do not rely on it having a value.
+ *
+ * Generated from protobuf field int64 overlapping_asset_count = 4 [deprecated = true];
+ * @param int|string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setOverlappingAssetCount($var)
+ {
+ @trigger_error('overlapping_asset_count is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkInt64($var);
+ $this->overlapping_asset_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Findings for each of the PreferenceSets for this group.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.GroupPreferenceSetFinding preference_set_findings = 5;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPreferenceSetFindings()
+ {
+ return $this->preference_set_findings;
+ }
+
+ /**
+ * Findings for each of the PreferenceSets for this group.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.GroupPreferenceSetFinding preference_set_findings = 5;
+ * @param array<\Google\Cloud\MigrationCenter\V1\ReportSummary\GroupPreferenceSetFinding>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPreferenceSetFindings($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ReportSummary\GroupPreferenceSetFinding::class);
+ $this->preference_set_findings = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(GroupFinding::class, \Google\Cloud\MigrationCenter\V1\ReportSummary_GroupFinding::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/GroupPreferenceSetFinding.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/GroupPreferenceSetFinding.php
new file mode 100644
index 000000000000..fa84bf84d5bd
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/GroupPreferenceSetFinding.php
@@ -0,0 +1,544 @@
+google.cloud.migrationcenter.v1.ReportSummary.GroupPreferenceSetFinding
+ */
+class GroupPreferenceSetFinding extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Display Name of the Preference Set
+ *
+ * Generated from protobuf field string display_name = 1;
+ */
+ protected $display_name = '';
+ /**
+ * Description for the Preference Set.
+ *
+ * Generated from protobuf field string description = 2;
+ */
+ protected $description = '';
+ /**
+ * A set of preferences that applies to all machines in the context.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VirtualMachinePreferences machine_preferences = 3;
+ */
+ protected $machine_preferences = null;
+ /**
+ * Total monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_total = 4;
+ */
+ protected $monthly_cost_total = null;
+ /**
+ * Compute monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_compute = 5;
+ */
+ protected $monthly_cost_compute = null;
+ /**
+ * Licensing monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_os_license = 6;
+ */
+ protected $monthly_cost_os_license = null;
+ /**
+ * Network Egress monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_network_egress = 7;
+ */
+ protected $monthly_cost_network_egress = null;
+ /**
+ * Storage monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_storage = 8;
+ */
+ protected $monthly_cost_storage = null;
+ /**
+ * Miscellaneous monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_other = 9;
+ */
+ protected $monthly_cost_other = null;
+ /**
+ * A set of findings that applies to Compute Engine machines in the input.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.ComputeEngineFinding compute_engine_finding = 10;
+ */
+ protected $compute_engine_finding = null;
+ /**
+ * A set of findings that applies to VMWare machines in the input.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.VmwareEngineFinding vmware_engine_finding = 11;
+ */
+ protected $vmware_engine_finding = null;
+ /**
+ * A set of findings that applies to Sole-Tenant machines in the input.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.SoleTenantFinding sole_tenant_finding = 12;
+ */
+ protected $sole_tenant_finding = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $display_name
+ * Display Name of the Preference Set
+ * @type string $description
+ * Description for the Preference Set.
+ * @type \Google\Cloud\MigrationCenter\V1\VirtualMachinePreferences $machine_preferences
+ * A set of preferences that applies to all machines in the context.
+ * @type \Google\Type\Money $monthly_cost_total
+ * Total monthly cost for this preference set.
+ * @type \Google\Type\Money $monthly_cost_compute
+ * Compute monthly cost for this preference set.
+ * @type \Google\Type\Money $monthly_cost_os_license
+ * Licensing monthly cost for this preference set.
+ * @type \Google\Type\Money $monthly_cost_network_egress
+ * Network Egress monthly cost for this preference set.
+ * @type \Google\Type\Money $monthly_cost_storage
+ * Storage monthly cost for this preference set.
+ * @type \Google\Type\Money $monthly_cost_other
+ * Miscellaneous monthly cost for this preference set.
+ * @type \Google\Cloud\MigrationCenter\V1\ReportSummary\ComputeEngineFinding $compute_engine_finding
+ * A set of findings that applies to Compute Engine machines in the input.
+ * @type \Google\Cloud\MigrationCenter\V1\ReportSummary\VmwareEngineFinding $vmware_engine_finding
+ * A set of findings that applies to VMWare machines in the input.
+ * @type \Google\Cloud\MigrationCenter\V1\ReportSummary\SoleTenantFinding $sole_tenant_finding
+ * A set of findings that applies to Sole-Tenant machines in the input.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Display Name of the Preference Set
+ *
+ * Generated from protobuf field string display_name = 1;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * Display Name of the Preference Set
+ *
+ * Generated from protobuf field string display_name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description for the Preference Set.
+ *
+ * Generated from protobuf field string description = 2;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Description for the Preference Set.
+ *
+ * Generated from protobuf field string description = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * A set of preferences that applies to all machines in the context.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VirtualMachinePreferences machine_preferences = 3;
+ * @return \Google\Cloud\MigrationCenter\V1\VirtualMachinePreferences|null
+ */
+ public function getMachinePreferences()
+ {
+ return $this->machine_preferences;
+ }
+
+ public function hasMachinePreferences()
+ {
+ return isset($this->machine_preferences);
+ }
+
+ public function clearMachinePreferences()
+ {
+ unset($this->machine_preferences);
+ }
+
+ /**
+ * A set of preferences that applies to all machines in the context.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VirtualMachinePreferences machine_preferences = 3;
+ * @param \Google\Cloud\MigrationCenter\V1\VirtualMachinePreferences $var
+ * @return $this
+ */
+ public function setMachinePreferences($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\VirtualMachinePreferences::class);
+ $this->machine_preferences = $var;
+
+ return $this;
+ }
+
+ /**
+ * Total monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_total = 4;
+ * @return \Google\Type\Money|null
+ */
+ public function getMonthlyCostTotal()
+ {
+ return $this->monthly_cost_total;
+ }
+
+ public function hasMonthlyCostTotal()
+ {
+ return isset($this->monthly_cost_total);
+ }
+
+ public function clearMonthlyCostTotal()
+ {
+ unset($this->monthly_cost_total);
+ }
+
+ /**
+ * Total monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_total = 4;
+ * @param \Google\Type\Money $var
+ * @return $this
+ */
+ public function setMonthlyCostTotal($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Money::class);
+ $this->monthly_cost_total = $var;
+
+ return $this;
+ }
+
+ /**
+ * Compute monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_compute = 5;
+ * @return \Google\Type\Money|null
+ */
+ public function getMonthlyCostCompute()
+ {
+ return $this->monthly_cost_compute;
+ }
+
+ public function hasMonthlyCostCompute()
+ {
+ return isset($this->monthly_cost_compute);
+ }
+
+ public function clearMonthlyCostCompute()
+ {
+ unset($this->monthly_cost_compute);
+ }
+
+ /**
+ * Compute monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_compute = 5;
+ * @param \Google\Type\Money $var
+ * @return $this
+ */
+ public function setMonthlyCostCompute($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Money::class);
+ $this->monthly_cost_compute = $var;
+
+ return $this;
+ }
+
+ /**
+ * Licensing monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_os_license = 6;
+ * @return \Google\Type\Money|null
+ */
+ public function getMonthlyCostOsLicense()
+ {
+ return $this->monthly_cost_os_license;
+ }
+
+ public function hasMonthlyCostOsLicense()
+ {
+ return isset($this->monthly_cost_os_license);
+ }
+
+ public function clearMonthlyCostOsLicense()
+ {
+ unset($this->monthly_cost_os_license);
+ }
+
+ /**
+ * Licensing monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_os_license = 6;
+ * @param \Google\Type\Money $var
+ * @return $this
+ */
+ public function setMonthlyCostOsLicense($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Money::class);
+ $this->monthly_cost_os_license = $var;
+
+ return $this;
+ }
+
+ /**
+ * Network Egress monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_network_egress = 7;
+ * @return \Google\Type\Money|null
+ */
+ public function getMonthlyCostNetworkEgress()
+ {
+ return $this->monthly_cost_network_egress;
+ }
+
+ public function hasMonthlyCostNetworkEgress()
+ {
+ return isset($this->monthly_cost_network_egress);
+ }
+
+ public function clearMonthlyCostNetworkEgress()
+ {
+ unset($this->monthly_cost_network_egress);
+ }
+
+ /**
+ * Network Egress monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_network_egress = 7;
+ * @param \Google\Type\Money $var
+ * @return $this
+ */
+ public function setMonthlyCostNetworkEgress($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Money::class);
+ $this->monthly_cost_network_egress = $var;
+
+ return $this;
+ }
+
+ /**
+ * Storage monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_storage = 8;
+ * @return \Google\Type\Money|null
+ */
+ public function getMonthlyCostStorage()
+ {
+ return $this->monthly_cost_storage;
+ }
+
+ public function hasMonthlyCostStorage()
+ {
+ return isset($this->monthly_cost_storage);
+ }
+
+ public function clearMonthlyCostStorage()
+ {
+ unset($this->monthly_cost_storage);
+ }
+
+ /**
+ * Storage monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_storage = 8;
+ * @param \Google\Type\Money $var
+ * @return $this
+ */
+ public function setMonthlyCostStorage($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Money::class);
+ $this->monthly_cost_storage = $var;
+
+ return $this;
+ }
+
+ /**
+ * Miscellaneous monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_other = 9;
+ * @return \Google\Type\Money|null
+ */
+ public function getMonthlyCostOther()
+ {
+ return $this->monthly_cost_other;
+ }
+
+ public function hasMonthlyCostOther()
+ {
+ return isset($this->monthly_cost_other);
+ }
+
+ public function clearMonthlyCostOther()
+ {
+ unset($this->monthly_cost_other);
+ }
+
+ /**
+ * Miscellaneous monthly cost for this preference set.
+ *
+ * Generated from protobuf field .google.type.Money monthly_cost_other = 9;
+ * @param \Google\Type\Money $var
+ * @return $this
+ */
+ public function setMonthlyCostOther($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Money::class);
+ $this->monthly_cost_other = $var;
+
+ return $this;
+ }
+
+ /**
+ * A set of findings that applies to Compute Engine machines in the input.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.ComputeEngineFinding compute_engine_finding = 10;
+ * @return \Google\Cloud\MigrationCenter\V1\ReportSummary\ComputeEngineFinding|null
+ */
+ public function getComputeEngineFinding()
+ {
+ return $this->compute_engine_finding;
+ }
+
+ public function hasComputeEngineFinding()
+ {
+ return isset($this->compute_engine_finding);
+ }
+
+ public function clearComputeEngineFinding()
+ {
+ unset($this->compute_engine_finding);
+ }
+
+ /**
+ * A set of findings that applies to Compute Engine machines in the input.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.ComputeEngineFinding compute_engine_finding = 10;
+ * @param \Google\Cloud\MigrationCenter\V1\ReportSummary\ComputeEngineFinding $var
+ * @return $this
+ */
+ public function setComputeEngineFinding($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ReportSummary\ComputeEngineFinding::class);
+ $this->compute_engine_finding = $var;
+
+ return $this;
+ }
+
+ /**
+ * A set of findings that applies to VMWare machines in the input.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.VmwareEngineFinding vmware_engine_finding = 11;
+ * @return \Google\Cloud\MigrationCenter\V1\ReportSummary\VmwareEngineFinding|null
+ */
+ public function getVmwareEngineFinding()
+ {
+ return $this->vmware_engine_finding;
+ }
+
+ public function hasVmwareEngineFinding()
+ {
+ return isset($this->vmware_engine_finding);
+ }
+
+ public function clearVmwareEngineFinding()
+ {
+ unset($this->vmware_engine_finding);
+ }
+
+ /**
+ * A set of findings that applies to VMWare machines in the input.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.VmwareEngineFinding vmware_engine_finding = 11;
+ * @param \Google\Cloud\MigrationCenter\V1\ReportSummary\VmwareEngineFinding $var
+ * @return $this
+ */
+ public function setVmwareEngineFinding($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ReportSummary\VmwareEngineFinding::class);
+ $this->vmware_engine_finding = $var;
+
+ return $this;
+ }
+
+ /**
+ * A set of findings that applies to Sole-Tenant machines in the input.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.SoleTenantFinding sole_tenant_finding = 12;
+ * @return \Google\Cloud\MigrationCenter\V1\ReportSummary\SoleTenantFinding|null
+ */
+ public function getSoleTenantFinding()
+ {
+ return $this->sole_tenant_finding;
+ }
+
+ public function hasSoleTenantFinding()
+ {
+ return isset($this->sole_tenant_finding);
+ }
+
+ public function clearSoleTenantFinding()
+ {
+ unset($this->sole_tenant_finding);
+ }
+
+ /**
+ * A set of findings that applies to Sole-Tenant machines in the input.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.SoleTenantFinding sole_tenant_finding = 12;
+ * @param \Google\Cloud\MigrationCenter\V1\ReportSummary\SoleTenantFinding $var
+ * @return $this
+ */
+ public function setSoleTenantFinding($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ReportSummary\SoleTenantFinding::class);
+ $this->sole_tenant_finding = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(GroupPreferenceSetFinding::class, \Google\Cloud\MigrationCenter\V1\ReportSummary_GroupPreferenceSetFinding::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/HistogramChartData.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/HistogramChartData.php
new file mode 100644
index 000000000000..75d06644f304
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/HistogramChartData.php
@@ -0,0 +1,87 @@
+google.cloud.migrationcenter.v1.ReportSummary.HistogramChartData
+ */
+class HistogramChartData extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Buckets in the histogram.
+ * There will be `n+1` buckets matching `n` lower bounds in the request.
+ * The first bucket will be from -infinity to the first bound.
+ * Subsequent buckets will be between one bound and the next.
+ * The final bucket will be from the final bound to infinity.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.HistogramChartData.Bucket buckets = 1;
+ */
+ private $buckets;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\ReportSummary\HistogramChartData\Bucket>|\Google\Protobuf\Internal\RepeatedField $buckets
+ * Buckets in the histogram.
+ * There will be `n+1` buckets matching `n` lower bounds in the request.
+ * The first bucket will be from -infinity to the first bound.
+ * Subsequent buckets will be between one bound and the next.
+ * The final bucket will be from the final bound to infinity.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Buckets in the histogram.
+ * There will be `n+1` buckets matching `n` lower bounds in the request.
+ * The first bucket will be from -infinity to the first bound.
+ * Subsequent buckets will be between one bound and the next.
+ * The final bucket will be from the final bound to infinity.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.HistogramChartData.Bucket buckets = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getBuckets()
+ {
+ return $this->buckets;
+ }
+
+ /**
+ * Buckets in the histogram.
+ * There will be `n+1` buckets matching `n` lower bounds in the request.
+ * The first bucket will be from -infinity to the first bound.
+ * Subsequent buckets will be between one bound and the next.
+ * The final bucket will be from the final bound to infinity.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.HistogramChartData.Bucket buckets = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\ReportSummary\HistogramChartData\Bucket>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setBuckets($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ReportSummary\HistogramChartData\Bucket::class);
+ $this->buckets = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(HistogramChartData::class, \Google\Cloud\MigrationCenter\V1\ReportSummary_HistogramChartData::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/HistogramChartData/Bucket.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/HistogramChartData/Bucket.php
new file mode 100644
index 000000000000..ca8197db764a
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/HistogramChartData/Bucket.php
@@ -0,0 +1,141 @@
+google.cloud.migrationcenter.v1.ReportSummary.HistogramChartData.Bucket
+ */
+class Bucket extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Lower bound - inclusive.
+ *
+ * Generated from protobuf field int64 lower_bound = 1;
+ */
+ protected $lower_bound = 0;
+ /**
+ * Upper bound - exclusive.
+ *
+ * Generated from protobuf field int64 upper_bound = 2;
+ */
+ protected $upper_bound = 0;
+ /**
+ * Count of items in the bucket.
+ *
+ * Generated from protobuf field int64 count = 3;
+ */
+ protected $count = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $lower_bound
+ * Lower bound - inclusive.
+ * @type int|string $upper_bound
+ * Upper bound - exclusive.
+ * @type int|string $count
+ * Count of items in the bucket.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Lower bound - inclusive.
+ *
+ * Generated from protobuf field int64 lower_bound = 1;
+ * @return int|string
+ */
+ public function getLowerBound()
+ {
+ return $this->lower_bound;
+ }
+
+ /**
+ * Lower bound - inclusive.
+ *
+ * Generated from protobuf field int64 lower_bound = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setLowerBound($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->lower_bound = $var;
+
+ return $this;
+ }
+
+ /**
+ * Upper bound - exclusive.
+ *
+ * Generated from protobuf field int64 upper_bound = 2;
+ * @return int|string
+ */
+ public function getUpperBound()
+ {
+ return $this->upper_bound;
+ }
+
+ /**
+ * Upper bound - exclusive.
+ *
+ * Generated from protobuf field int64 upper_bound = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setUpperBound($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->upper_bound = $var;
+
+ return $this;
+ }
+
+ /**
+ * Count of items in the bucket.
+ *
+ * Generated from protobuf field int64 count = 3;
+ * @return int|string
+ */
+ public function getCount()
+ {
+ return $this->count;
+ }
+
+ /**
+ * Count of items in the bucket.
+ *
+ * Generated from protobuf field int64 count = 3;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->count = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Bucket::class, \Google\Cloud\MigrationCenter\V1\ReportSummary_HistogramChartData_Bucket::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/MachineSeriesAllocation.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/MachineSeriesAllocation.php
new file mode 100644
index 000000000000..ae3ebad0dd3a
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/MachineSeriesAllocation.php
@@ -0,0 +1,115 @@
+google.cloud.migrationcenter.v1.ReportSummary.MachineSeriesAllocation
+ */
+class MachineSeriesAllocation extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The Machine Series (e.g. "E2", "N2")
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineSeries machine_series = 1;
+ */
+ protected $machine_series = null;
+ /**
+ * Count of assets allocated to this machine series.
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 2;
+ */
+ protected $allocated_asset_count = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MigrationCenter\V1\MachineSeries $machine_series
+ * The Machine Series (e.g. "E2", "N2")
+ * @type int|string $allocated_asset_count
+ * Count of assets allocated to this machine series.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The Machine Series (e.g. "E2", "N2")
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineSeries machine_series = 1;
+ * @return \Google\Cloud\MigrationCenter\V1\MachineSeries|null
+ */
+ public function getMachineSeries()
+ {
+ return $this->machine_series;
+ }
+
+ public function hasMachineSeries()
+ {
+ return isset($this->machine_series);
+ }
+
+ public function clearMachineSeries()
+ {
+ unset($this->machine_series);
+ }
+
+ /**
+ * The Machine Series (e.g. "E2", "N2")
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.MachineSeries machine_series = 1;
+ * @param \Google\Cloud\MigrationCenter\V1\MachineSeries $var
+ * @return $this
+ */
+ public function setMachineSeries($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\MachineSeries::class);
+ $this->machine_series = $var;
+
+ return $this;
+ }
+
+ /**
+ * Count of assets allocated to this machine series.
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 2;
+ * @return int|string
+ */
+ public function getAllocatedAssetCount()
+ {
+ return $this->allocated_asset_count;
+ }
+
+ /**
+ * Count of assets allocated to this machine series.
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setAllocatedAssetCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->allocated_asset_count = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(MachineSeriesAllocation::class, \Google\Cloud\MigrationCenter\V1\ReportSummary_MachineSeriesAllocation::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/SoleTenantFinding.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/SoleTenantFinding.php
new file mode 100644
index 000000000000..9dd9c5693d87
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/SoleTenantFinding.php
@@ -0,0 +1,138 @@
+google.cloud.migrationcenter.v1.ReportSummary.SoleTenantFinding
+ */
+class SoleTenantFinding extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Set of regions in which the assets are allocated
+ *
+ * Generated from protobuf field repeated string allocated_regions = 1;
+ */
+ private $allocated_regions;
+ /**
+ * Count of assets which are allocated
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 2;
+ */
+ protected $allocated_asset_count = 0;
+ /**
+ * Set of per-nodetype allocation records
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.SoleTenantNodeAllocation node_allocations = 3;
+ */
+ private $node_allocations;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $allocated_regions
+ * Set of regions in which the assets are allocated
+ * @type int|string $allocated_asset_count
+ * Count of assets which are allocated
+ * @type array<\Google\Cloud\MigrationCenter\V1\ReportSummary\SoleTenantNodeAllocation>|\Google\Protobuf\Internal\RepeatedField $node_allocations
+ * Set of per-nodetype allocation records
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Set of regions in which the assets are allocated
+ *
+ * Generated from protobuf field repeated string allocated_regions = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAllocatedRegions()
+ {
+ return $this->allocated_regions;
+ }
+
+ /**
+ * Set of regions in which the assets are allocated
+ *
+ * Generated from protobuf field repeated string allocated_regions = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAllocatedRegions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->allocated_regions = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Count of assets which are allocated
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 2;
+ * @return int|string
+ */
+ public function getAllocatedAssetCount()
+ {
+ return $this->allocated_asset_count;
+ }
+
+ /**
+ * Count of assets which are allocated
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setAllocatedAssetCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->allocated_asset_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Set of per-nodetype allocation records
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.SoleTenantNodeAllocation node_allocations = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getNodeAllocations()
+ {
+ return $this->node_allocations;
+ }
+
+ /**
+ * Set of per-nodetype allocation records
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.SoleTenantNodeAllocation node_allocations = 3;
+ * @param array<\Google\Cloud\MigrationCenter\V1\ReportSummary\SoleTenantNodeAllocation>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setNodeAllocations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ReportSummary\SoleTenantNodeAllocation::class);
+ $this->node_allocations = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(SoleTenantFinding::class, \Google\Cloud\MigrationCenter\V1\ReportSummary_SoleTenantFinding::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/SoleTenantNodeAllocation.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/SoleTenantNodeAllocation.php
new file mode 100644
index 000000000000..019fb4f70b41
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/SoleTenantNodeAllocation.php
@@ -0,0 +1,148 @@
+google.cloud.migrationcenter.v1.ReportSummary.SoleTenantNodeAllocation
+ */
+class SoleTenantNodeAllocation extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Sole Tenant node type, e.g. "m3-node-128-3904"
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.SoleTenantNodeType node = 1;
+ */
+ protected $node = null;
+ /**
+ * Count of this node type to be provisioned
+ *
+ * Generated from protobuf field int64 node_count = 2;
+ */
+ protected $node_count = 0;
+ /**
+ * Count of assets allocated to these nodes
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 3;
+ */
+ protected $allocated_asset_count = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MigrationCenter\V1\SoleTenantNodeType $node
+ * Sole Tenant node type, e.g. "m3-node-128-3904"
+ * @type int|string $node_count
+ * Count of this node type to be provisioned
+ * @type int|string $allocated_asset_count
+ * Count of assets allocated to these nodes
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Sole Tenant node type, e.g. "m3-node-128-3904"
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.SoleTenantNodeType node = 1;
+ * @return \Google\Cloud\MigrationCenter\V1\SoleTenantNodeType|null
+ */
+ public function getNode()
+ {
+ return $this->node;
+ }
+
+ public function hasNode()
+ {
+ return isset($this->node);
+ }
+
+ public function clearNode()
+ {
+ unset($this->node);
+ }
+
+ /**
+ * Sole Tenant node type, e.g. "m3-node-128-3904"
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.SoleTenantNodeType node = 1;
+ * @param \Google\Cloud\MigrationCenter\V1\SoleTenantNodeType $var
+ * @return $this
+ */
+ public function setNode($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\SoleTenantNodeType::class);
+ $this->node = $var;
+
+ return $this;
+ }
+
+ /**
+ * Count of this node type to be provisioned
+ *
+ * Generated from protobuf field int64 node_count = 2;
+ * @return int|string
+ */
+ public function getNodeCount()
+ {
+ return $this->node_count;
+ }
+
+ /**
+ * Count of this node type to be provisioned
+ *
+ * Generated from protobuf field int64 node_count = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setNodeCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->node_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Count of assets allocated to these nodes
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 3;
+ * @return int|string
+ */
+ public function getAllocatedAssetCount()
+ {
+ return $this->allocated_asset_count;
+ }
+
+ /**
+ * Count of assets allocated to these nodes
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 3;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setAllocatedAssetCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->allocated_asset_count = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(SoleTenantNodeAllocation::class, \Google\Cloud\MigrationCenter\V1\ReportSummary_SoleTenantNodeAllocation::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/UtilizationChartData.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/UtilizationChartData.php
new file mode 100644
index 000000000000..7f3104415ff6
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/UtilizationChartData.php
@@ -0,0 +1,105 @@
+google.cloud.migrationcenter.v1.ReportSummary.UtilizationChartData
+ */
+class UtilizationChartData extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Aggregate value which falls into the "Used" bucket.
+ *
+ * Generated from protobuf field int64 used = 1;
+ */
+ protected $used = 0;
+ /**
+ * Aggregate value which falls into the "Free" bucket.
+ *
+ * Generated from protobuf field int64 free = 2;
+ */
+ protected $free = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $used
+ * Aggregate value which falls into the "Used" bucket.
+ * @type int|string $free
+ * Aggregate value which falls into the "Free" bucket.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Aggregate value which falls into the "Used" bucket.
+ *
+ * Generated from protobuf field int64 used = 1;
+ * @return int|string
+ */
+ public function getUsed()
+ {
+ return $this->used;
+ }
+
+ /**
+ * Aggregate value which falls into the "Used" bucket.
+ *
+ * Generated from protobuf field int64 used = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setUsed($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->used = $var;
+
+ return $this;
+ }
+
+ /**
+ * Aggregate value which falls into the "Free" bucket.
+ *
+ * Generated from protobuf field int64 free = 2;
+ * @return int|string
+ */
+ public function getFree()
+ {
+ return $this->free;
+ }
+
+ /**
+ * Aggregate value which falls into the "Free" bucket.
+ *
+ * Generated from protobuf field int64 free = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setFree($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->free = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(UtilizationChartData::class, \Google\Cloud\MigrationCenter\V1\ReportSummary_UtilizationChartData::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/VmwareEngineFinding.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/VmwareEngineFinding.php
new file mode 100644
index 000000000000..dc870baba1ef
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/VmwareEngineFinding.php
@@ -0,0 +1,138 @@
+google.cloud.migrationcenter.v1.ReportSummary.VmwareEngineFinding
+ */
+class VmwareEngineFinding extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Set of regions in which the assets were allocated
+ *
+ * Generated from protobuf field repeated string allocated_regions = 1;
+ */
+ private $allocated_regions;
+ /**
+ * Count of assets which are allocated
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 2;
+ */
+ protected $allocated_asset_count = 0;
+ /**
+ * Set of per-nodetype allocation records
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.VmwareNodeAllocation node_allocations = 3;
+ */
+ private $node_allocations;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $allocated_regions
+ * Set of regions in which the assets were allocated
+ * @type int|string $allocated_asset_count
+ * Count of assets which are allocated
+ * @type array<\Google\Cloud\MigrationCenter\V1\ReportSummary\VmwareNodeAllocation>|\Google\Protobuf\Internal\RepeatedField $node_allocations
+ * Set of per-nodetype allocation records
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Set of regions in which the assets were allocated
+ *
+ * Generated from protobuf field repeated string allocated_regions = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAllocatedRegions()
+ {
+ return $this->allocated_regions;
+ }
+
+ /**
+ * Set of regions in which the assets were allocated
+ *
+ * Generated from protobuf field repeated string allocated_regions = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAllocatedRegions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->allocated_regions = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Count of assets which are allocated
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 2;
+ * @return int|string
+ */
+ public function getAllocatedAssetCount()
+ {
+ return $this->allocated_asset_count;
+ }
+
+ /**
+ * Count of assets which are allocated
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setAllocatedAssetCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->allocated_asset_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Set of per-nodetype allocation records
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.VmwareNodeAllocation node_allocations = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getNodeAllocations()
+ {
+ return $this->node_allocations;
+ }
+
+ /**
+ * Set of per-nodetype allocation records
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ReportSummary.VmwareNodeAllocation node_allocations = 3;
+ * @param array<\Google\Cloud\MigrationCenter\V1\ReportSummary\VmwareNodeAllocation>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setNodeAllocations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ReportSummary\VmwareNodeAllocation::class);
+ $this->node_allocations = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(VmwareEngineFinding::class, \Google\Cloud\MigrationCenter\V1\ReportSummary_VmwareEngineFinding::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/VmwareNode.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/VmwareNode.php
new file mode 100644
index 000000000000..9a0dfe332a7c
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/VmwareNode.php
@@ -0,0 +1,78 @@
+google.cloud.migrationcenter.v1.ReportSummary.VmwareNode
+ */
+class VmwareNode extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Code to identify VMware Engine node series, e.g. "ve1-standard-72". Based
+ * on the displayName of
+ * cloud.google.com/vmware-engine/docs/reference/rest/v1/projects.locations.nodeTypes
+ *
+ * Generated from protobuf field string code = 1;
+ */
+ protected $code = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $code
+ * Code to identify VMware Engine node series, e.g. "ve1-standard-72". Based
+ * on the displayName of
+ * cloud.google.com/vmware-engine/docs/reference/rest/v1/projects.locations.nodeTypes
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Code to identify VMware Engine node series, e.g. "ve1-standard-72". Based
+ * on the displayName of
+ * cloud.google.com/vmware-engine/docs/reference/rest/v1/projects.locations.nodeTypes
+ *
+ * Generated from protobuf field string code = 1;
+ * @return string
+ */
+ public function getCode()
+ {
+ return $this->code;
+ }
+
+ /**
+ * Code to identify VMware Engine node series, e.g. "ve1-standard-72". Based
+ * on the displayName of
+ * cloud.google.com/vmware-engine/docs/reference/rest/v1/projects.locations.nodeTypes
+ *
+ * Generated from protobuf field string code = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setCode($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->code = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(VmwareNode::class, \Google\Cloud\MigrationCenter\V1\ReportSummary_VmwareNode::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/VmwareNodeAllocation.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/VmwareNodeAllocation.php
new file mode 100644
index 000000000000..376a758d9bc5
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportSummary/VmwareNodeAllocation.php
@@ -0,0 +1,148 @@
+google.cloud.migrationcenter.v1.ReportSummary.VmwareNodeAllocation
+ */
+class VmwareNodeAllocation extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * VMWare node type, e.g. "ve1-standard-72"
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.VmwareNode vmware_node = 1;
+ */
+ protected $vmware_node = null;
+ /**
+ * Count of this node type to be provisioned
+ *
+ * Generated from protobuf field int64 node_count = 2;
+ */
+ protected $node_count = 0;
+ /**
+ * Count of assets allocated to these nodes
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 3;
+ */
+ protected $allocated_asset_count = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\MigrationCenter\V1\ReportSummary\VmwareNode $vmware_node
+ * VMWare node type, e.g. "ve1-standard-72"
+ * @type int|string $node_count
+ * Count of this node type to be provisioned
+ * @type int|string $allocated_asset_count
+ * Count of assets allocated to these nodes
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * VMWare node type, e.g. "ve1-standard-72"
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.VmwareNode vmware_node = 1;
+ * @return \Google\Cloud\MigrationCenter\V1\ReportSummary\VmwareNode|null
+ */
+ public function getVmwareNode()
+ {
+ return $this->vmware_node;
+ }
+
+ public function hasVmwareNode()
+ {
+ return isset($this->vmware_node);
+ }
+
+ public function clearVmwareNode()
+ {
+ unset($this->vmware_node);
+ }
+
+ /**
+ * VMWare node type, e.g. "ve1-standard-72"
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ReportSummary.VmwareNode vmware_node = 1;
+ * @param \Google\Cloud\MigrationCenter\V1\ReportSummary\VmwareNode $var
+ * @return $this
+ */
+ public function setVmwareNode($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ReportSummary\VmwareNode::class);
+ $this->vmware_node = $var;
+
+ return $this;
+ }
+
+ /**
+ * Count of this node type to be provisioned
+ *
+ * Generated from protobuf field int64 node_count = 2;
+ * @return int|string
+ */
+ public function getNodeCount()
+ {
+ return $this->node_count;
+ }
+
+ /**
+ * Count of this node type to be provisioned
+ *
+ * Generated from protobuf field int64 node_count = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setNodeCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->node_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Count of assets allocated to these nodes
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 3;
+ * @return int|string
+ */
+ public function getAllocatedAssetCount()
+ {
+ return $this->allocated_asset_count;
+ }
+
+ /**
+ * Count of assets allocated to these nodes
+ *
+ * Generated from protobuf field int64 allocated_asset_count = 3;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setAllocatedAssetCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->allocated_asset_count = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(VmwareNodeAllocation::class, \Google\Cloud\MigrationCenter\V1\ReportSummary_VmwareNodeAllocation::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportView.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportView.php
new file mode 100644
index 000000000000..8aa6a7e13acb
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ReportView.php
@@ -0,0 +1,73 @@
+google.cloud.migrationcenter.v1.ReportView
+ */
+class ReportView
+{
+ /**
+ * The report view is not specified. The API displays the basic view by
+ * default.
+ *
+ * Generated from protobuf enum REPORT_VIEW_UNSPECIFIED = 0;
+ */
+ const REPORT_VIEW_UNSPECIFIED = 0;
+ /**
+ * The report view includes only basic metadata of the Report. Useful for
+ * list views.
+ *
+ * Generated from protobuf enum REPORT_VIEW_BASIC = 1;
+ */
+ const REPORT_VIEW_BASIC = 1;
+ /**
+ * The report view includes all the metadata of the Report. Useful for
+ * preview.
+ *
+ * Generated from protobuf enum REPORT_VIEW_FULL = 2;
+ */
+ const REPORT_VIEW_FULL = 2;
+ /**
+ * The report view includes the standard metadata of an report. Useful for
+ * detail view.
+ *
+ * Generated from protobuf enum REPORT_VIEW_STANDARD = 3;
+ */
+ const REPORT_VIEW_STANDARD = 3;
+
+ private static $valueToName = [
+ self::REPORT_VIEW_UNSPECIFIED => 'REPORT_VIEW_UNSPECIFIED',
+ self::REPORT_VIEW_BASIC => 'REPORT_VIEW_BASIC',
+ self::REPORT_VIEW_FULL => 'REPORT_VIEW_FULL',
+ self::REPORT_VIEW_STANDARD => 'REPORT_VIEW_STANDARD',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunImportJobRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunImportJobRequest.php
new file mode 100644
index 000000000000..08b377a9b4b1
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunImportJobRequest.php
@@ -0,0 +1,155 @@
+google.cloud.migrationcenter.v1.RunImportJobRequest
+ */
+class RunImportJobRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the import job to run.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $name Required. The name of the import job to run. Please see
+ * {@see MigrationCenterClient::importJobName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\RunImportJobRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the import job to run.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the import job to run.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the import job to run.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningProcess.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningProcess.php
new file mode 100644
index 000000000000..6d196f7fad00
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningProcess.php
@@ -0,0 +1,203 @@
+google.cloud.migrationcenter.v1.RunningProcess
+ */
+class RunningProcess extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Process ID.
+ *
+ * Generated from protobuf field int64 pid = 1;
+ */
+ protected $pid = 0;
+ /**
+ * Process binary path.
+ *
+ * Generated from protobuf field string exe_path = 2;
+ */
+ protected $exe_path = '';
+ /**
+ * Process full command line.
+ *
+ * Generated from protobuf field string cmdline = 3;
+ */
+ protected $cmdline = '';
+ /**
+ * User running the process.
+ *
+ * Generated from protobuf field string user = 4;
+ */
+ protected $user = '';
+ /**
+ * Process extended attributes.
+ *
+ * Generated from protobuf field map attributes = 100;
+ */
+ private $attributes;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $pid
+ * Process ID.
+ * @type string $exe_path
+ * Process binary path.
+ * @type string $cmdline
+ * Process full command line.
+ * @type string $user
+ * User running the process.
+ * @type array|\Google\Protobuf\Internal\MapField $attributes
+ * Process extended attributes.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Process ID.
+ *
+ * Generated from protobuf field int64 pid = 1;
+ * @return int|string
+ */
+ public function getPid()
+ {
+ return $this->pid;
+ }
+
+ /**
+ * Process ID.
+ *
+ * Generated from protobuf field int64 pid = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setPid($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->pid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Process binary path.
+ *
+ * Generated from protobuf field string exe_path = 2;
+ * @return string
+ */
+ public function getExePath()
+ {
+ return $this->exe_path;
+ }
+
+ /**
+ * Process binary path.
+ *
+ * Generated from protobuf field string exe_path = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setExePath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->exe_path = $var;
+
+ return $this;
+ }
+
+ /**
+ * Process full command line.
+ *
+ * Generated from protobuf field string cmdline = 3;
+ * @return string
+ */
+ public function getCmdline()
+ {
+ return $this->cmdline;
+ }
+
+ /**
+ * Process full command line.
+ *
+ * Generated from protobuf field string cmdline = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setCmdline($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cmdline = $var;
+
+ return $this;
+ }
+
+ /**
+ * User running the process.
+ *
+ * Generated from protobuf field string user = 4;
+ * @return string
+ */
+ public function getUser()
+ {
+ return $this->user;
+ }
+
+ /**
+ * User running the process.
+ *
+ * Generated from protobuf field string user = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setUser($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->user = $var;
+
+ return $this;
+ }
+
+ /**
+ * Process extended attributes.
+ *
+ * Generated from protobuf field map attributes = 100;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAttributes()
+ {
+ return $this->attributes;
+ }
+
+ /**
+ * Process extended attributes.
+ *
+ * Generated from protobuf field map attributes = 100;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAttributes($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->attributes = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningProcessList.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningProcessList.php
new file mode 100644
index 000000000000..2db4b45ee7cb
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningProcessList.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.RunningProcessList
+ */
+class RunningProcessList extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Running process entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.RunningProcess entries = 1;
+ */
+ private $entries;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\RunningProcess>|\Google\Protobuf\Internal\RepeatedField $entries
+ * Running process entries.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Running process entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.RunningProcess entries = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEntries()
+ {
+ return $this->entries;
+ }
+
+ /**
+ * Running process entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.RunningProcess entries = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\RunningProcess>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEntries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\RunningProcess::class);
+ $this->entries = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningService.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningService.php
new file mode 100644
index 000000000000..6a7eb69330a9
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningService.php
@@ -0,0 +1,237 @@
+google.cloud.migrationcenter.v1.RunningService
+ */
+class RunningService extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Service name.
+ *
+ * Generated from protobuf field string service_name = 1;
+ */
+ protected $service_name = '';
+ /**
+ * Service state (OS-agnostic).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RunningService.State state = 2;
+ */
+ protected $state = 0;
+ /**
+ * Service start mode (OS-agnostic).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RunningService.StartMode start_mode = 3;
+ */
+ protected $start_mode = 0;
+ /**
+ * Service binary path.
+ *
+ * Generated from protobuf field string exe_path = 4;
+ */
+ protected $exe_path = '';
+ /**
+ * Service command line.
+ *
+ * Generated from protobuf field string cmdline = 5;
+ */
+ protected $cmdline = '';
+ /**
+ * Service pid.
+ *
+ * Generated from protobuf field int64 pid = 6;
+ */
+ protected $pid = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service_name
+ * Service name.
+ * @type int $state
+ * Service state (OS-agnostic).
+ * @type int $start_mode
+ * Service start mode (OS-agnostic).
+ * @type string $exe_path
+ * Service binary path.
+ * @type string $cmdline
+ * Service command line.
+ * @type int|string $pid
+ * Service pid.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Service name.
+ *
+ * Generated from protobuf field string service_name = 1;
+ * @return string
+ */
+ public function getServiceName()
+ {
+ return $this->service_name;
+ }
+
+ /**
+ * Service name.
+ *
+ * Generated from protobuf field string service_name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Service state (OS-agnostic).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RunningService.State state = 2;
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Service state (OS-agnostic).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RunningService.State state = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\RunningService\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Service start mode (OS-agnostic).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RunningService.StartMode start_mode = 3;
+ * @return int
+ */
+ public function getStartMode()
+ {
+ return $this->start_mode;
+ }
+
+ /**
+ * Service start mode (OS-agnostic).
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RunningService.StartMode start_mode = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setStartMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\RunningService\StartMode::class);
+ $this->start_mode = $var;
+
+ return $this;
+ }
+
+ /**
+ * Service binary path.
+ *
+ * Generated from protobuf field string exe_path = 4;
+ * @return string
+ */
+ public function getExePath()
+ {
+ return $this->exe_path;
+ }
+
+ /**
+ * Service binary path.
+ *
+ * Generated from protobuf field string exe_path = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setExePath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->exe_path = $var;
+
+ return $this;
+ }
+
+ /**
+ * Service command line.
+ *
+ * Generated from protobuf field string cmdline = 5;
+ * @return string
+ */
+ public function getCmdline()
+ {
+ return $this->cmdline;
+ }
+
+ /**
+ * Service command line.
+ *
+ * Generated from protobuf field string cmdline = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setCmdline($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cmdline = $var;
+
+ return $this;
+ }
+
+ /**
+ * Service pid.
+ *
+ * Generated from protobuf field int64 pid = 6;
+ * @return int|string
+ */
+ public function getPid()
+ {
+ return $this->pid;
+ }
+
+ /**
+ * Service pid.
+ *
+ * Generated from protobuf field int64 pid = 6;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setPid($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->pid = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningService/StartMode.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningService/StartMode.php
new file mode 100644
index 000000000000..76bc7f88e836
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningService/StartMode.php
@@ -0,0 +1,85 @@
+google.cloud.migrationcenter.v1.RunningService.StartMode
+ */
+class StartMode
+{
+ /**
+ * Start mode unspecified.
+ *
+ * Generated from protobuf enum START_MODE_UNSPECIFIED = 0;
+ */
+ const START_MODE_UNSPECIFIED = 0;
+ /**
+ * The service is a device driver started by the system loader.
+ *
+ * Generated from protobuf enum BOOT = 1;
+ */
+ const BOOT = 1;
+ /**
+ * The service is a device driver started by the IOInitSystem function.
+ *
+ * Generated from protobuf enum SYSTEM = 2;
+ */
+ const SYSTEM = 2;
+ /**
+ * The service is started by the operating system, at system start-up
+ *
+ * Generated from protobuf enum AUTO = 3;
+ */
+ const AUTO = 3;
+ /**
+ * The service is started only manually, by a user.
+ *
+ * Generated from protobuf enum MANUAL = 4;
+ */
+ const MANUAL = 4;
+ /**
+ * The service is disabled.
+ *
+ * Generated from protobuf enum DISABLED = 5;
+ */
+ const DISABLED = 5;
+
+ private static $valueToName = [
+ self::START_MODE_UNSPECIFIED => 'START_MODE_UNSPECIFIED',
+ self::BOOT => 'BOOT',
+ self::SYSTEM => 'SYSTEM',
+ self::AUTO => 'AUTO',
+ self::MANUAL => 'MANUAL',
+ self::DISABLED => 'DISABLED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(StartMode::class, \Google\Cloud\MigrationCenter\V1\RunningService_StartMode::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningService/State.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningService/State.php
new file mode 100644
index 000000000000..4c55cf16bf6f
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningService/State.php
@@ -0,0 +1,71 @@
+google.cloud.migrationcenter.v1.RunningService.State
+ */
+class State
+{
+ /**
+ * Service state unspecified.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * Service is active.
+ *
+ * Generated from protobuf enum ACTIVE = 1;
+ */
+ const ACTIVE = 1;
+ /**
+ * Service is paused.
+ *
+ * Generated from protobuf enum PAUSED = 2;
+ */
+ const PAUSED = 2;
+ /**
+ * Service is stopped.
+ *
+ * Generated from protobuf enum STOPPED = 3;
+ */
+ const STOPPED = 3;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::ACTIVE => 'ACTIVE',
+ self::PAUSED => 'PAUSED',
+ self::STOPPED => 'STOPPED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(State::class, \Google\Cloud\MigrationCenter\V1\RunningService_State::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningServiceList.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningServiceList.php
new file mode 100644
index 000000000000..ae8c30df576d
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RunningServiceList.php
@@ -0,0 +1,67 @@
+google.cloud.migrationcenter.v1.RunningServiceList
+ */
+class RunningServiceList extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Running service entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.RunningService entries = 1;
+ */
+ private $entries;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\RunningService>|\Google\Protobuf\Internal\RepeatedField $entries
+ * Running service entries.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Running service entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.RunningService entries = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEntries()
+ {
+ return $this->entries;
+ }
+
+ /**
+ * Running service entries.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.RunningService entries = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\RunningService>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEntries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\RunningService::class);
+ $this->entries = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RuntimeNetworkInfo.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RuntimeNetworkInfo.php
new file mode 100644
index 000000000000..49549af0d98f
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/RuntimeNetworkInfo.php
@@ -0,0 +1,121 @@
+google.cloud.migrationcenter.v1.RuntimeNetworkInfo
+ */
+class RuntimeNetworkInfo extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Time of the last network scan.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp scan_time = 1;
+ */
+ protected $scan_time = null;
+ /**
+ * Network connections.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkConnectionList connections = 2;
+ */
+ protected $connections = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $scan_time
+ * Time of the last network scan.
+ * @type \Google\Cloud\MigrationCenter\V1\NetworkConnectionList $connections
+ * Network connections.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Time of the last network scan.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp scan_time = 1;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getScanTime()
+ {
+ return $this->scan_time;
+ }
+
+ public function hasScanTime()
+ {
+ return isset($this->scan_time);
+ }
+
+ public function clearScanTime()
+ {
+ unset($this->scan_time);
+ }
+
+ /**
+ * Time of the last network scan.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp scan_time = 1;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setScanTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->scan_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Network connections.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkConnectionList connections = 2;
+ * @return \Google\Cloud\MigrationCenter\V1\NetworkConnectionList|null
+ */
+ public function getConnections()
+ {
+ return $this->connections;
+ }
+
+ public function hasConnections()
+ {
+ return isset($this->connections);
+ }
+
+ public function clearConnections()
+ {
+ unset($this->connections);
+ }
+
+ /**
+ * Network connections.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.NetworkConnectionList connections = 2;
+ * @param \Google\Cloud\MigrationCenter\V1\NetworkConnectionList $var
+ * @return $this
+ */
+ public function setConnections($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\NetworkConnectionList::class);
+ $this->connections = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Settings.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Settings.php
new file mode 100644
index 000000000000..59797b9d8491
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Settings.php
@@ -0,0 +1,101 @@
+google.cloud.migrationcenter.v1.Settings
+ */
+class Settings extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * The preference set used by default for a project.
+ *
+ * Generated from protobuf field string preference_set = 2 [(.google.api.resource_reference) = {
+ */
+ protected $preference_set = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The name of the resource.
+ * @type string $preference_set
+ * The preference set used by default for a project.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The name of the resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The preference set used by default for a project.
+ *
+ * Generated from protobuf field string preference_set = 2 [(.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getPreferenceSet()
+ {
+ return $this->preference_set;
+ }
+
+ /**
+ * The preference set used by default for a project.
+ *
+ * Generated from protobuf field string preference_set = 2 [(.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setPreferenceSet($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->preference_set = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/SizingOptimizationStrategy.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/SizingOptimizationStrategy.php
new file mode 100644
index 000000000000..6ac0e00cbf69
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/SizingOptimizationStrategy.php
@@ -0,0 +1,74 @@
+google.cloud.migrationcenter.v1.SizingOptimizationStrategy
+ */
+class SizingOptimizationStrategy
+{
+ /**
+ * Unspecified (default value).
+ *
+ * Generated from protobuf enum SIZING_OPTIMIZATION_STRATEGY_UNSPECIFIED = 0;
+ */
+ const SIZING_OPTIMIZATION_STRATEGY_UNSPECIFIED = 0;
+ /**
+ * No optimization applied. Virtual machine sizing matches as closely as
+ * possible the machine shape on the source site, not considering any actual
+ * performance data.
+ *
+ * Generated from protobuf enum SIZING_OPTIMIZATION_STRATEGY_SAME_AS_SOURCE = 1;
+ */
+ const SIZING_OPTIMIZATION_STRATEGY_SAME_AS_SOURCE = 1;
+ /**
+ * Virtual machine sizing will match the reported usage and shape, with some
+ * slack. This a good value to start with.
+ *
+ * Generated from protobuf enum SIZING_OPTIMIZATION_STRATEGY_MODERATE = 2;
+ */
+ const SIZING_OPTIMIZATION_STRATEGY_MODERATE = 2;
+ /**
+ * Virtual machine sizing will match the reported usage, with little slack.
+ * Using this option can help reduce costs.
+ *
+ * Generated from protobuf enum SIZING_OPTIMIZATION_STRATEGY_AGGRESSIVE = 3;
+ */
+ const SIZING_OPTIMIZATION_STRATEGY_AGGRESSIVE = 3;
+
+ private static $valueToName = [
+ self::SIZING_OPTIMIZATION_STRATEGY_UNSPECIFIED => 'SIZING_OPTIMIZATION_STRATEGY_UNSPECIFIED',
+ self::SIZING_OPTIMIZATION_STRATEGY_SAME_AS_SOURCE => 'SIZING_OPTIMIZATION_STRATEGY_SAME_AS_SOURCE',
+ self::SIZING_OPTIMIZATION_STRATEGY_MODERATE => 'SIZING_OPTIMIZATION_STRATEGY_MODERATE',
+ self::SIZING_OPTIMIZATION_STRATEGY_AGGRESSIVE => 'SIZING_OPTIMIZATION_STRATEGY_AGGRESSIVE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/SoleTenancyPreferences.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/SoleTenancyPreferences.php
new file mode 100644
index 000000000000..7d8d4bd37d34
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/SoleTenancyPreferences.php
@@ -0,0 +1,189 @@
+google.cloud.migrationcenter.v1.SoleTenancyPreferences
+ */
+class SoleTenancyPreferences extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * CPU overcommit ratio.
+ * Acceptable values are between 1.0 and 2.0 inclusive.
+ *
+ * Generated from protobuf field double cpu_overcommit_ratio = 1;
+ */
+ protected $cpu_overcommit_ratio = 0.0;
+ /**
+ * Sole Tenancy nodes maintenance policy.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.SoleTenancyPreferences.HostMaintenancePolicy host_maintenance_policy = 2;
+ */
+ protected $host_maintenance_policy = 0;
+ /**
+ * Commitment plan to consider when calculating costs for virtual machine
+ * insights and recommendations.
+ * If you are unsure which value to set, a 3 year commitment plan is often a
+ * good value to start with.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.SoleTenancyPreferences.CommitmentPlan commitment_plan = 3;
+ */
+ protected $commitment_plan = 0;
+ /**
+ * A list of sole tenant node types.
+ * An empty list means that all possible node types will be considered.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.SoleTenantNodeType node_types = 4;
+ */
+ private $node_types;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type float $cpu_overcommit_ratio
+ * CPU overcommit ratio.
+ * Acceptable values are between 1.0 and 2.0 inclusive.
+ * @type int $host_maintenance_policy
+ * Sole Tenancy nodes maintenance policy.
+ * @type int $commitment_plan
+ * Commitment plan to consider when calculating costs for virtual machine
+ * insights and recommendations.
+ * If you are unsure which value to set, a 3 year commitment plan is often a
+ * good value to start with.
+ * @type array<\Google\Cloud\MigrationCenter\V1\SoleTenantNodeType>|\Google\Protobuf\Internal\RepeatedField $node_types
+ * A list of sole tenant node types.
+ * An empty list means that all possible node types will be considered.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * CPU overcommit ratio.
+ * Acceptable values are between 1.0 and 2.0 inclusive.
+ *
+ * Generated from protobuf field double cpu_overcommit_ratio = 1;
+ * @return float
+ */
+ public function getCpuOvercommitRatio()
+ {
+ return $this->cpu_overcommit_ratio;
+ }
+
+ /**
+ * CPU overcommit ratio.
+ * Acceptable values are between 1.0 and 2.0 inclusive.
+ *
+ * Generated from protobuf field double cpu_overcommit_ratio = 1;
+ * @param float $var
+ * @return $this
+ */
+ public function setCpuOvercommitRatio($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->cpu_overcommit_ratio = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sole Tenancy nodes maintenance policy.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.SoleTenancyPreferences.HostMaintenancePolicy host_maintenance_policy = 2;
+ * @return int
+ */
+ public function getHostMaintenancePolicy()
+ {
+ return $this->host_maintenance_policy;
+ }
+
+ /**
+ * Sole Tenancy nodes maintenance policy.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.SoleTenancyPreferences.HostMaintenancePolicy host_maintenance_policy = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setHostMaintenancePolicy($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\SoleTenancyPreferences\HostMaintenancePolicy::class);
+ $this->host_maintenance_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Commitment plan to consider when calculating costs for virtual machine
+ * insights and recommendations.
+ * If you are unsure which value to set, a 3 year commitment plan is often a
+ * good value to start with.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.SoleTenancyPreferences.CommitmentPlan commitment_plan = 3;
+ * @return int
+ */
+ public function getCommitmentPlan()
+ {
+ return $this->commitment_plan;
+ }
+
+ /**
+ * Commitment plan to consider when calculating costs for virtual machine
+ * insights and recommendations.
+ * If you are unsure which value to set, a 3 year commitment plan is often a
+ * good value to start with.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.SoleTenancyPreferences.CommitmentPlan commitment_plan = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setCommitmentPlan($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\SoleTenancyPreferences\CommitmentPlan::class);
+ $this->commitment_plan = $var;
+
+ return $this;
+ }
+
+ /**
+ * A list of sole tenant node types.
+ * An empty list means that all possible node types will be considered.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.SoleTenantNodeType node_types = 4;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getNodeTypes()
+ {
+ return $this->node_types;
+ }
+
+ /**
+ * A list of sole tenant node types.
+ * An empty list means that all possible node types will be considered.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.SoleTenantNodeType node_types = 4;
+ * @param array<\Google\Cloud\MigrationCenter\V1\SoleTenantNodeType>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setNodeTypes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\SoleTenantNodeType::class);
+ $this->node_types = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/SoleTenancyPreferences/CommitmentPlan.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/SoleTenancyPreferences/CommitmentPlan.php
new file mode 100644
index 000000000000..3a5b64cc0477
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/SoleTenancyPreferences/CommitmentPlan.php
@@ -0,0 +1,71 @@
+google.cloud.migrationcenter.v1.SoleTenancyPreferences.CommitmentPlan
+ */
+class CommitmentPlan
+{
+ /**
+ * Unspecified commitment plan.
+ *
+ * Generated from protobuf enum COMMITMENT_PLAN_UNSPECIFIED = 0;
+ */
+ const COMMITMENT_PLAN_UNSPECIFIED = 0;
+ /**
+ * No commitment plan (on-demand usage).
+ *
+ * Generated from protobuf enum ON_DEMAND = 1;
+ */
+ const ON_DEMAND = 1;
+ /**
+ * 1 year commitment.
+ *
+ * Generated from protobuf enum COMMITMENT_1_YEAR = 2;
+ */
+ const COMMITMENT_1_YEAR = 2;
+ /**
+ * 3 years commitment.
+ *
+ * Generated from protobuf enum COMMITMENT_3_YEAR = 3;
+ */
+ const COMMITMENT_3_YEAR = 3;
+
+ private static $valueToName = [
+ self::COMMITMENT_PLAN_UNSPECIFIED => 'COMMITMENT_PLAN_UNSPECIFIED',
+ self::ON_DEMAND => 'ON_DEMAND',
+ self::COMMITMENT_1_YEAR => 'COMMITMENT_1_YEAR',
+ self::COMMITMENT_3_YEAR => 'COMMITMENT_3_YEAR',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CommitmentPlan::class, \Google\Cloud\MigrationCenter\V1\SoleTenancyPreferences_CommitmentPlan::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/SoleTenancyPreferences/HostMaintenancePolicy.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/SoleTenancyPreferences/HostMaintenancePolicy.php
new file mode 100644
index 000000000000..36c62c02e8c8
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/SoleTenancyPreferences/HostMaintenancePolicy.php
@@ -0,0 +1,71 @@
+google.cloud.migrationcenter.v1.SoleTenancyPreferences.HostMaintenancePolicy
+ */
+class HostMaintenancePolicy
+{
+ /**
+ * Unspecified host maintenance policy.
+ *
+ * Generated from protobuf enum HOST_MAINTENANCE_POLICY_UNSPECIFIED = 0;
+ */
+ const HOST_MAINTENANCE_POLICY_UNSPECIFIED = 0;
+ /**
+ * Default host maintenance policy.
+ *
+ * Generated from protobuf enum HOST_MAINTENANCE_POLICY_DEFAULT = 1;
+ */
+ const HOST_MAINTENANCE_POLICY_DEFAULT = 1;
+ /**
+ * Restart in place host maintenance policy.
+ *
+ * Generated from protobuf enum HOST_MAINTENANCE_POLICY_RESTART_IN_PLACE = 2;
+ */
+ const HOST_MAINTENANCE_POLICY_RESTART_IN_PLACE = 2;
+ /**
+ * Migrate within node group host maintenance policy.
+ *
+ * Generated from protobuf enum HOST_MAINTENANCE_POLICY_MIGRATE_WITHIN_NODE_GROUP = 3;
+ */
+ const HOST_MAINTENANCE_POLICY_MIGRATE_WITHIN_NODE_GROUP = 3;
+
+ private static $valueToName = [
+ self::HOST_MAINTENANCE_POLICY_UNSPECIFIED => 'HOST_MAINTENANCE_POLICY_UNSPECIFIED',
+ self::HOST_MAINTENANCE_POLICY_DEFAULT => 'HOST_MAINTENANCE_POLICY_DEFAULT',
+ self::HOST_MAINTENANCE_POLICY_RESTART_IN_PLACE => 'HOST_MAINTENANCE_POLICY_RESTART_IN_PLACE',
+ self::HOST_MAINTENANCE_POLICY_MIGRATE_WITHIN_NODE_GROUP => 'HOST_MAINTENANCE_POLICY_MIGRATE_WITHIN_NODE_GROUP',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(HostMaintenancePolicy::class, \Google\Cloud\MigrationCenter\V1\SoleTenancyPreferences_HostMaintenancePolicy::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/SoleTenantNodeType.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/SoleTenantNodeType.php
new file mode 100644
index 000000000000..de2a0dc41427
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/SoleTenantNodeType.php
@@ -0,0 +1,71 @@
+google.cloud.migrationcenter.v1.SoleTenantNodeType
+ */
+class SoleTenantNodeType extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Name of the Sole Tenant node. Consult
+ * https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes
+ *
+ * Generated from protobuf field string node_name = 1;
+ */
+ protected $node_name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $node_name
+ * Name of the Sole Tenant node. Consult
+ * https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Name of the Sole Tenant node. Consult
+ * https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes
+ *
+ * Generated from protobuf field string node_name = 1;
+ * @return string
+ */
+ public function getNodeName()
+ {
+ return $this->node_name;
+ }
+
+ /**
+ * Name of the Sole Tenant node. Consult
+ * https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes
+ *
+ * Generated from protobuf field string node_name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setNodeName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->node_name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Source.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Source.php
new file mode 100644
index 000000000000..52c94434e41e
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Source.php
@@ -0,0 +1,436 @@
+google.cloud.migrationcenter.v1.Source
+ */
+class Source extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The full name of the source.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Output only. The timestamp when the source was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The timestamp when the source was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * User-friendly display name.
+ *
+ * Generated from protobuf field string display_name = 4;
+ */
+ protected $display_name = '';
+ /**
+ * Free-text description.
+ *
+ * Generated from protobuf field string description = 5;
+ */
+ protected $description = '';
+ /**
+ * Data source type.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Source.SourceType type = 6;
+ */
+ protected $type = 0;
+ /**
+ * The information confidence of the source.
+ * The higher the value, the higher the confidence.
+ *
+ * Generated from protobuf field int32 priority = 7;
+ */
+ protected $priority = 0;
+ /**
+ * If `true`, the source is managed by other service(s).
+ *
+ * Generated from protobuf field bool managed = 8;
+ */
+ protected $managed = false;
+ /**
+ * Output only. Number of frames that are still being processed.
+ *
+ * Generated from protobuf field int32 pending_frame_count = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $pending_frame_count = 0;
+ /**
+ * Output only. The number of frames that were reported by the source and
+ * contained errors.
+ *
+ * Generated from protobuf field int32 error_frame_count = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $error_frame_count = 0;
+ /**
+ * Output only. The state of the source.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Source.State state = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The full name of the source.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The timestamp when the source was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The timestamp when the source was last updated.
+ * @type string $display_name
+ * User-friendly display name.
+ * @type string $description
+ * Free-text description.
+ * @type int $type
+ * Data source type.
+ * @type int $priority
+ * The information confidence of the source.
+ * The higher the value, the higher the confidence.
+ * @type bool $managed
+ * If `true`, the source is managed by other service(s).
+ * @type int $pending_frame_count
+ * Output only. Number of frames that are still being processed.
+ * @type int $error_frame_count
+ * Output only. The number of frames that were reported by the source and
+ * contained errors.
+ * @type int $state
+ * Output only. The state of the source.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The full name of the source.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The full name of the source.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The timestamp when the source was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The timestamp when the source was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The timestamp when the source was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The timestamp when the source was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * User-friendly display name.
+ *
+ * Generated from protobuf field string display_name = 4;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * User-friendly display name.
+ *
+ * Generated from protobuf field string display_name = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Free-text description.
+ *
+ * Generated from protobuf field string description = 5;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Free-text description.
+ *
+ * Generated from protobuf field string description = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Data source type.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Source.SourceType type = 6;
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Data source type.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Source.SourceType type = 6;
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\Source\SourceType::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The information confidence of the source.
+ * The higher the value, the higher the confidence.
+ *
+ * Generated from protobuf field int32 priority = 7;
+ * @return int
+ */
+ public function getPriority()
+ {
+ return $this->priority;
+ }
+
+ /**
+ * The information confidence of the source.
+ * The higher the value, the higher the confidence.
+ *
+ * Generated from protobuf field int32 priority = 7;
+ * @param int $var
+ * @return $this
+ */
+ public function setPriority($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->priority = $var;
+
+ return $this;
+ }
+
+ /**
+ * If `true`, the source is managed by other service(s).
+ *
+ * Generated from protobuf field bool managed = 8;
+ * @return bool
+ */
+ public function getManaged()
+ {
+ return $this->managed;
+ }
+
+ /**
+ * If `true`, the source is managed by other service(s).
+ *
+ * Generated from protobuf field bool managed = 8;
+ * @param bool $var
+ * @return $this
+ */
+ public function setManaged($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->managed = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Number of frames that are still being processed.
+ *
+ * Generated from protobuf field int32 pending_frame_count = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getPendingFrameCount()
+ {
+ return $this->pending_frame_count;
+ }
+
+ /**
+ * Output only. Number of frames that are still being processed.
+ *
+ * Generated from protobuf field int32 pending_frame_count = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setPendingFrameCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->pending_frame_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The number of frames that were reported by the source and
+ * contained errors.
+ *
+ * Generated from protobuf field int32 error_frame_count = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getErrorFrameCount()
+ {
+ return $this->error_frame_count;
+ }
+
+ /**
+ * Output only. The number of frames that were reported by the source and
+ * contained errors.
+ *
+ * Generated from protobuf field int32 error_frame_count = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setErrorFrameCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->error_frame_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The state of the source.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Source.State state = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The state of the source.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Source.State state = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\Source\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Source/SourceType.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Source/SourceType.php
new file mode 100644
index 000000000000..cfb8f6b41c2c
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Source/SourceType.php
@@ -0,0 +1,76 @@
+google.cloud.migrationcenter.v1.Source.SourceType
+ */
+class SourceType
+{
+ /**
+ * Unspecified
+ *
+ * Generated from protobuf enum SOURCE_TYPE_UNKNOWN = 0;
+ */
+ const SOURCE_TYPE_UNKNOWN = 0;
+ /**
+ * Manually uploaded file (e.g. CSV)
+ *
+ * Generated from protobuf enum SOURCE_TYPE_UPLOAD = 1;
+ */
+ const SOURCE_TYPE_UPLOAD = 1;
+ /**
+ * Guest-level info
+ *
+ * Generated from protobuf enum SOURCE_TYPE_GUEST_OS_SCAN = 2;
+ */
+ const SOURCE_TYPE_GUEST_OS_SCAN = 2;
+ /**
+ * Inventory-level scan
+ *
+ * Generated from protobuf enum SOURCE_TYPE_INVENTORY_SCAN = 3;
+ */
+ const SOURCE_TYPE_INVENTORY_SCAN = 3;
+ /**
+ * Third-party owned sources.
+ *
+ * Generated from protobuf enum SOURCE_TYPE_CUSTOM = 4;
+ */
+ const SOURCE_TYPE_CUSTOM = 4;
+
+ private static $valueToName = [
+ self::SOURCE_TYPE_UNKNOWN => 'SOURCE_TYPE_UNKNOWN',
+ self::SOURCE_TYPE_UPLOAD => 'SOURCE_TYPE_UPLOAD',
+ self::SOURCE_TYPE_GUEST_OS_SCAN => 'SOURCE_TYPE_GUEST_OS_SCAN',
+ self::SOURCE_TYPE_INVENTORY_SCAN => 'SOURCE_TYPE_INVENTORY_SCAN',
+ self::SOURCE_TYPE_CUSTOM => 'SOURCE_TYPE_CUSTOM',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(SourceType::class, \Google\Cloud\MigrationCenter\V1\Source_SourceType::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Source/State.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Source/State.php
new file mode 100644
index 000000000000..4c4a472ef5d7
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/Source/State.php
@@ -0,0 +1,72 @@
+google.cloud.migrationcenter.v1.Source.State
+ */
+class State
+{
+ /**
+ * Unspecified.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The source is active and ready to be used.
+ *
+ * Generated from protobuf enum ACTIVE = 1;
+ */
+ const ACTIVE = 1;
+ /**
+ * In the process of being deleted.
+ *
+ * Generated from protobuf enum DELETING = 2;
+ */
+ const DELETING = 2;
+ /**
+ * Source is in an invalid state. Asset frames reported to it will be
+ * ignored.
+ *
+ * Generated from protobuf enum INVALID = 3;
+ */
+ const INVALID = 3;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::ACTIVE => 'ACTIVE',
+ self::DELETING => 'DELETING',
+ self::INVALID => 'INVALID',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(State::class, \Google\Cloud\MigrationCenter\V1\Source_State::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdateAssetRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdateAssetRequest.php
new file mode 100644
index 000000000000..d4d95dd80c3b
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdateAssetRequest.php
@@ -0,0 +1,235 @@
+google.cloud.migrationcenter.v1.UpdateAssetRequest
+ */
+class UpdateAssetRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Asset` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The resource being updated.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Asset asset = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $asset = null;
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param \Google\Cloud\MigrationCenter\V1\Asset $asset Required. The resource being updated.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * `Asset` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\UpdateAssetRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\MigrationCenter\V1\Asset $asset, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setAsset($asset)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Asset` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ * @type \Google\Cloud\MigrationCenter\V1\Asset $asset
+ * Required. The resource being updated.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Asset` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Asset` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The resource being updated.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Asset asset = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\MigrationCenter\V1\Asset|null
+ */
+ public function getAsset()
+ {
+ return $this->asset;
+ }
+
+ public function hasAsset()
+ {
+ return isset($this->asset);
+ }
+
+ public function clearAsset()
+ {
+ unset($this->asset);
+ }
+
+ /**
+ * Required. The resource being updated.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Asset asset = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\MigrationCenter\V1\Asset $var
+ * @return $this
+ */
+ public function setAsset($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\Asset::class);
+ $this->asset = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdateGroupRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdateGroupRequest.php
new file mode 100644
index 000000000000..2630b822fcdd
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdateGroupRequest.php
@@ -0,0 +1,230 @@
+google.cloud.migrationcenter.v1.UpdateGroupRequest
+ */
+class UpdateGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Group` resource by the update.
+ * The values specified in the `update_mask` are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The group resource being updated.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Group group = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $group = null;
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param \Google\Cloud\MigrationCenter\V1\Group $group Required. The group resource being updated.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * `Group` resource by the update.
+ * The values specified in the `update_mask` are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\UpdateGroupRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\MigrationCenter\V1\Group $group, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setGroup($group)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Group` resource by the update.
+ * The values specified in the `update_mask` are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ * @type \Google\Cloud\MigrationCenter\V1\Group $group
+ * Required. The group resource being updated.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Group` resource by the update.
+ * The values specified in the `update_mask` are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Group` resource by the update.
+ * The values specified in the `update_mask` are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The group resource being updated.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Group group = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\MigrationCenter\V1\Group|null
+ */
+ public function getGroup()
+ {
+ return $this->group;
+ }
+
+ public function hasGroup()
+ {
+ return isset($this->group);
+ }
+
+ public function clearGroup()
+ {
+ unset($this->group);
+ }
+
+ /**
+ * Required. The group resource being updated.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Group group = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\MigrationCenter\V1\Group $var
+ * @return $this
+ */
+ public function setGroup($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\Group::class);
+ $this->group = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdateImportJobRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdateImportJobRequest.php
new file mode 100644
index 000000000000..c5f2b56e3459
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdateImportJobRequest.php
@@ -0,0 +1,235 @@
+google.cloud.migrationcenter.v1.UpdateImportJobRequest
+ */
+class UpdateImportJobRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Asset` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The resource being updated
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJob import_job = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $import_job = null;
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param \Google\Cloud\MigrationCenter\V1\ImportJob $importJob Required. The resource being updated
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * `Asset` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\UpdateImportJobRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\MigrationCenter\V1\ImportJob $importJob, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setImportJob($importJob)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Asset` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ * @type \Google\Cloud\MigrationCenter\V1\ImportJob $import_job
+ * Required. The resource being updated
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Asset` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Asset` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The resource being updated
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJob import_job = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\MigrationCenter\V1\ImportJob|null
+ */
+ public function getImportJob()
+ {
+ return $this->import_job;
+ }
+
+ public function hasImportJob()
+ {
+ return isset($this->import_job);
+ }
+
+ public function clearImportJob()
+ {
+ unset($this->import_job);
+ }
+
+ /**
+ * Required. The resource being updated
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ImportJob import_job = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\MigrationCenter\V1\ImportJob $var
+ * @return $this
+ */
+ public function setImportJob($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ImportJob::class);
+ $this->import_job = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdatePreferenceSetRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdatePreferenceSetRequest.php
new file mode 100644
index 000000000000..d8661e55c657
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdatePreferenceSetRequest.php
@@ -0,0 +1,235 @@
+google.cloud.migrationcenter.v1.UpdatePreferenceSetRequest
+ */
+class UpdatePreferenceSetRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `PreferenceSet` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The preference set resource being updated.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.PreferenceSet preference_set = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $preference_set = null;
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param \Google\Cloud\MigrationCenter\V1\PreferenceSet $preferenceSet Required. The preference set resource being updated.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * `PreferenceSet` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\UpdatePreferenceSetRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\MigrationCenter\V1\PreferenceSet $preferenceSet, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setPreferenceSet($preferenceSet)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `PreferenceSet` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ * @type \Google\Cloud\MigrationCenter\V1\PreferenceSet $preference_set
+ * Required. The preference set resource being updated.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `PreferenceSet` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `PreferenceSet` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The preference set resource being updated.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.PreferenceSet preference_set = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\MigrationCenter\V1\PreferenceSet|null
+ */
+ public function getPreferenceSet()
+ {
+ return $this->preference_set;
+ }
+
+ public function hasPreferenceSet()
+ {
+ return isset($this->preference_set);
+ }
+
+ public function clearPreferenceSet()
+ {
+ unset($this->preference_set);
+ }
+
+ /**
+ * Required. The preference set resource being updated.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.PreferenceSet preference_set = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\MigrationCenter\V1\PreferenceSet $var
+ * @return $this
+ */
+ public function setPreferenceSet($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\PreferenceSet::class);
+ $this->preference_set = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdateSettingsRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdateSettingsRequest.php
new file mode 100644
index 000000000000..54e7bb155722
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdateSettingsRequest.php
@@ -0,0 +1,235 @@
+google.cloud.migrationcenter.v1.UpdateSettingsRequest
+ */
+class UpdateSettingsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Settings` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The project settings resource being updated.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Settings settings = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $settings = null;
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param \Google\Cloud\MigrationCenter\V1\Settings $settings Required. The project settings resource being updated.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * `Settings` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\UpdateSettingsRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\MigrationCenter\V1\Settings $settings, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setSettings($settings)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Settings` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ * @type \Google\Cloud\MigrationCenter\V1\Settings $settings
+ * Required. The project settings resource being updated.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Settings` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Settings` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The project settings resource being updated.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Settings settings = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\MigrationCenter\V1\Settings|null
+ */
+ public function getSettings()
+ {
+ return $this->settings;
+ }
+
+ public function hasSettings()
+ {
+ return isset($this->settings);
+ }
+
+ public function clearSettings()
+ {
+ unset($this->settings);
+ }
+
+ /**
+ * Required. The project settings resource being updated.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Settings settings = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\MigrationCenter\V1\Settings $var
+ * @return $this
+ */
+ public function setSettings($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\Settings::class);
+ $this->settings = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdateSourceRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdateSourceRequest.php
new file mode 100644
index 000000000000..a59cbccc7e1f
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UpdateSourceRequest.php
@@ -0,0 +1,235 @@
+google.cloud.migrationcenter.v1.UpdateSourceRequest
+ */
+class UpdateSourceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Source` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The resource being updated
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Source source = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $source = null;
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param \Google\Cloud\MigrationCenter\V1\Source $source Required. The resource being updated
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * `Source` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\UpdateSourceRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\MigrationCenter\V1\Source $source, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setSource($source)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Source` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ * @type \Google\Cloud\MigrationCenter\V1\Source $source
+ * Required. The resource being updated
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Source` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `Source` resource by the update.
+ * The values specified in the `update_mask` field are relative to the
+ * resource, not the full request.
+ * A field will be overwritten if it is in the mask.
+ * A single * value in the mask lets you to overwrite all fields.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The resource being updated
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Source source = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\MigrationCenter\V1\Source|null
+ */
+ public function getSource()
+ {
+ return $this->source;
+ }
+
+ public function hasSource()
+ {
+ return isset($this->source);
+ }
+
+ public function clearSource()
+ {
+ unset($this->source);
+ }
+
+ /**
+ * Required. The resource being updated
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.Source source = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\MigrationCenter\V1\Source $var
+ * @return $this
+ */
+ public function setSource($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\Source::class);
+ $this->source = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes since the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UploadFileInfo.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UploadFileInfo.php
new file mode 100644
index 000000000000..928e161e6d41
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/UploadFileInfo.php
@@ -0,0 +1,145 @@
+google.cloud.migrationcenter.v1.UploadFileInfo
+ */
+class UploadFileInfo extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Upload URI for the file.
+ *
+ * Generated from protobuf field string signed_uri = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $signed_uri = '';
+ /**
+ * Output only. The headers that were used to sign the URI.
+ *
+ * Generated from protobuf field map headers = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $headers;
+ /**
+ * Output only. Expiration time of the upload URI.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp uri_expiration_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $uri_expiration_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $signed_uri
+ * Output only. Upload URI for the file.
+ * @type array|\Google\Protobuf\Internal\MapField $headers
+ * Output only. The headers that were used to sign the URI.
+ * @type \Google\Protobuf\Timestamp $uri_expiration_time
+ * Output only. Expiration time of the upload URI.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Upload URI for the file.
+ *
+ * Generated from protobuf field string signed_uri = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getSignedUri()
+ {
+ return $this->signed_uri;
+ }
+
+ /**
+ * Output only. Upload URI for the file.
+ *
+ * Generated from protobuf field string signed_uri = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setSignedUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->signed_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The headers that were used to sign the URI.
+ *
+ * Generated from protobuf field map headers = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getHeaders()
+ {
+ return $this->headers;
+ }
+
+ /**
+ * Output only. The headers that were used to sign the URI.
+ *
+ * Generated from protobuf field map headers = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setHeaders($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->headers = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Expiration time of the upload URI.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp uri_expiration_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUriExpirationTime()
+ {
+ return $this->uri_expiration_time;
+ }
+
+ public function hasUriExpirationTime()
+ {
+ return isset($this->uri_expiration_time);
+ }
+
+ public function clearUriExpirationTime()
+ {
+ unset($this->uri_expiration_time);
+ }
+
+ /**
+ * Output only. Expiration time of the upload URI.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp uri_expiration_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUriExpirationTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->uri_expiration_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ValidateImportJobRequest.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ValidateImportJobRequest.php
new file mode 100644
index 000000000000..29b792d20ee1
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ValidateImportJobRequest.php
@@ -0,0 +1,155 @@
+google.cloud.migrationcenter.v1.ValidateImportJobRequest
+ */
+class ValidateImportJobRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the import job to validate.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $name Required. The name of the import job to validate. Please see
+ * {@see MigrationCenterClient::importJobName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\MigrationCenter\V1\ValidateImportJobRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the import job to validate.
+ * @type string $request_id
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the import job to validate.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the import job to validate.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. An optional request ID to identify requests. Specify a unique
+ * request ID so that if you must retry your request, the server will know to
+ * ignore the request if it has already been completed. The server will
+ * guarantee that for at least 60 minutes after the first request.
+ * For example, consider a situation where you make an initial request and
+ * the request times out. If you make the request again with the same request
+ * ID, the server can check if original operation with the same request ID
+ * was received, and if so, will ignore the second request. This prevents
+ * clients from accidentally creating duplicate commitments.
+ * The request ID must be a valid UUID with the exception that zero UUID is
+ * not supported (00000000-0000-0000-0000-000000000000).
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRequestId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->request_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ValidationReport.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ValidationReport.php
new file mode 100644
index 000000000000..997d13c8228f
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/ValidationReport.php
@@ -0,0 +1,101 @@
+google.cloud.migrationcenter.v1.ValidationReport
+ */
+class ValidationReport extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of errors found in files.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.FileValidationReport file_validations = 1;
+ */
+ private $file_validations;
+ /**
+ * List of job level errors.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportError job_errors = 2;
+ */
+ private $job_errors;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\MigrationCenter\V1\FileValidationReport>|\Google\Protobuf\Internal\RepeatedField $file_validations
+ * List of errors found in files.
+ * @type array<\Google\Cloud\MigrationCenter\V1\ImportError>|\Google\Protobuf\Internal\RepeatedField $job_errors
+ * List of job level errors.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of errors found in files.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.FileValidationReport file_validations = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getFileValidations()
+ {
+ return $this->file_validations;
+ }
+
+ /**
+ * List of errors found in files.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.FileValidationReport file_validations = 1;
+ * @param array<\Google\Cloud\MigrationCenter\V1\FileValidationReport>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setFileValidations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\FileValidationReport::class);
+ $this->file_validations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * List of job level errors.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportError job_errors = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getJobErrors()
+ {
+ return $this->job_errors;
+ }
+
+ /**
+ * List of job level errors.
+ *
+ * Generated from protobuf field repeated .google.cloud.migrationcenter.v1.ImportError job_errors = 2;
+ * @param array<\Google\Cloud\MigrationCenter\V1\ImportError>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setJobErrors($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\MigrationCenter\V1\ImportError::class);
+ $this->job_errors = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VirtualMachinePreferences.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VirtualMachinePreferences.php
new file mode 100644
index 000000000000..8bcad9ff0e45
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VirtualMachinePreferences.php
@@ -0,0 +1,366 @@
+google.cloud.migrationcenter.v1.VirtualMachinePreferences
+ */
+class VirtualMachinePreferences extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Target product for assets using this preference set.
+ * Specify either target product or business goal, but
+ * not both.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ComputeMigrationTargetProduct target_product = 2;
+ */
+ protected $target_product = 0;
+ /**
+ * Region preferences for assets using this preference set.
+ * If you are unsure which value to set, the migration service API region is
+ * often a good value to start with.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RegionPreferences region_preferences = 3;
+ */
+ protected $region_preferences = null;
+ /**
+ * Commitment plan to consider when calculating costs for virtual machine
+ * insights and recommendations.
+ * If you are unsure which value to set, a 3 year commitment plan is often a
+ * good value to start with.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.CommitmentPlan commitment_plan = 4;
+ */
+ protected $commitment_plan = 0;
+ /**
+ * Sizing optimization strategy specifies the preferred strategy used when
+ * extrapolating usage data to calculate insights and recommendations for a
+ * virtual machine.
+ * If you are unsure which value to set, a moderate sizing optimization
+ * strategy is often a good value to start with.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.SizingOptimizationStrategy sizing_optimization_strategy = 5;
+ */
+ protected $sizing_optimization_strategy = 0;
+ /**
+ * Compute Engine preferences concern insights and recommendations for Compute
+ * Engine target.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ComputeEnginePreferences compute_engine_preferences = 6;
+ */
+ protected $compute_engine_preferences = null;
+ /**
+ * Preferences concerning insights and recommendations for
+ * Google Cloud VMware Engine.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareEnginePreferences vmware_engine_preferences = 7;
+ */
+ protected $vmware_engine_preferences = null;
+ /**
+ * Preferences concerning Sole Tenant nodes and virtual machines.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.SoleTenancyPreferences sole_tenancy_preferences = 8;
+ */
+ protected $sole_tenancy_preferences = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $target_product
+ * Target product for assets using this preference set.
+ * Specify either target product or business goal, but
+ * not both.
+ * @type \Google\Cloud\MigrationCenter\V1\RegionPreferences $region_preferences
+ * Region preferences for assets using this preference set.
+ * If you are unsure which value to set, the migration service API region is
+ * often a good value to start with.
+ * @type int $commitment_plan
+ * Commitment plan to consider when calculating costs for virtual machine
+ * insights and recommendations.
+ * If you are unsure which value to set, a 3 year commitment plan is often a
+ * good value to start with.
+ * @type int $sizing_optimization_strategy
+ * Sizing optimization strategy specifies the preferred strategy used when
+ * extrapolating usage data to calculate insights and recommendations for a
+ * virtual machine.
+ * If you are unsure which value to set, a moderate sizing optimization
+ * strategy is often a good value to start with.
+ * @type \Google\Cloud\MigrationCenter\V1\ComputeEnginePreferences $compute_engine_preferences
+ * Compute Engine preferences concern insights and recommendations for Compute
+ * Engine target.
+ * @type \Google\Cloud\MigrationCenter\V1\VmwareEnginePreferences $vmware_engine_preferences
+ * Preferences concerning insights and recommendations for
+ * Google Cloud VMware Engine.
+ * @type \Google\Cloud\MigrationCenter\V1\SoleTenancyPreferences $sole_tenancy_preferences
+ * Preferences concerning Sole Tenant nodes and virtual machines.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Target product for assets using this preference set.
+ * Specify either target product or business goal, but
+ * not both.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ComputeMigrationTargetProduct target_product = 2;
+ * @return int
+ */
+ public function getTargetProduct()
+ {
+ return $this->target_product;
+ }
+
+ /**
+ * Target product for assets using this preference set.
+ * Specify either target product or business goal, but
+ * not both.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ComputeMigrationTargetProduct target_product = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setTargetProduct($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\ComputeMigrationTargetProduct::class);
+ $this->target_product = $var;
+
+ return $this;
+ }
+
+ /**
+ * Region preferences for assets using this preference set.
+ * If you are unsure which value to set, the migration service API region is
+ * often a good value to start with.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RegionPreferences region_preferences = 3;
+ * @return \Google\Cloud\MigrationCenter\V1\RegionPreferences|null
+ */
+ public function getRegionPreferences()
+ {
+ return $this->region_preferences;
+ }
+
+ public function hasRegionPreferences()
+ {
+ return isset($this->region_preferences);
+ }
+
+ public function clearRegionPreferences()
+ {
+ unset($this->region_preferences);
+ }
+
+ /**
+ * Region preferences for assets using this preference set.
+ * If you are unsure which value to set, the migration service API region is
+ * often a good value to start with.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.RegionPreferences region_preferences = 3;
+ * @param \Google\Cloud\MigrationCenter\V1\RegionPreferences $var
+ * @return $this
+ */
+ public function setRegionPreferences($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\RegionPreferences::class);
+ $this->region_preferences = $var;
+
+ return $this;
+ }
+
+ /**
+ * Commitment plan to consider when calculating costs for virtual machine
+ * insights and recommendations.
+ * If you are unsure which value to set, a 3 year commitment plan is often a
+ * good value to start with.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.CommitmentPlan commitment_plan = 4;
+ * @return int
+ */
+ public function getCommitmentPlan()
+ {
+ return $this->commitment_plan;
+ }
+
+ /**
+ * Commitment plan to consider when calculating costs for virtual machine
+ * insights and recommendations.
+ * If you are unsure which value to set, a 3 year commitment plan is often a
+ * good value to start with.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.CommitmentPlan commitment_plan = 4;
+ * @param int $var
+ * @return $this
+ */
+ public function setCommitmentPlan($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\CommitmentPlan::class);
+ $this->commitment_plan = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sizing optimization strategy specifies the preferred strategy used when
+ * extrapolating usage data to calculate insights and recommendations for a
+ * virtual machine.
+ * If you are unsure which value to set, a moderate sizing optimization
+ * strategy is often a good value to start with.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.SizingOptimizationStrategy sizing_optimization_strategy = 5;
+ * @return int
+ */
+ public function getSizingOptimizationStrategy()
+ {
+ return $this->sizing_optimization_strategy;
+ }
+
+ /**
+ * Sizing optimization strategy specifies the preferred strategy used when
+ * extrapolating usage data to calculate insights and recommendations for a
+ * virtual machine.
+ * If you are unsure which value to set, a moderate sizing optimization
+ * strategy is often a good value to start with.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.SizingOptimizationStrategy sizing_optimization_strategy = 5;
+ * @param int $var
+ * @return $this
+ */
+ public function setSizingOptimizationStrategy($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\SizingOptimizationStrategy::class);
+ $this->sizing_optimization_strategy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Compute Engine preferences concern insights and recommendations for Compute
+ * Engine target.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ComputeEnginePreferences compute_engine_preferences = 6;
+ * @return \Google\Cloud\MigrationCenter\V1\ComputeEnginePreferences|null
+ */
+ public function getComputeEnginePreferences()
+ {
+ return $this->compute_engine_preferences;
+ }
+
+ public function hasComputeEnginePreferences()
+ {
+ return isset($this->compute_engine_preferences);
+ }
+
+ public function clearComputeEnginePreferences()
+ {
+ unset($this->compute_engine_preferences);
+ }
+
+ /**
+ * Compute Engine preferences concern insights and recommendations for Compute
+ * Engine target.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.ComputeEnginePreferences compute_engine_preferences = 6;
+ * @param \Google\Cloud\MigrationCenter\V1\ComputeEnginePreferences $var
+ * @return $this
+ */
+ public function setComputeEnginePreferences($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\ComputeEnginePreferences::class);
+ $this->compute_engine_preferences = $var;
+
+ return $this;
+ }
+
+ /**
+ * Preferences concerning insights and recommendations for
+ * Google Cloud VMware Engine.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareEnginePreferences vmware_engine_preferences = 7;
+ * @return \Google\Cloud\MigrationCenter\V1\VmwareEnginePreferences|null
+ */
+ public function getVmwareEnginePreferences()
+ {
+ return $this->vmware_engine_preferences;
+ }
+
+ public function hasVmwareEnginePreferences()
+ {
+ return isset($this->vmware_engine_preferences);
+ }
+
+ public function clearVmwareEnginePreferences()
+ {
+ unset($this->vmware_engine_preferences);
+ }
+
+ /**
+ * Preferences concerning insights and recommendations for
+ * Google Cloud VMware Engine.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareEnginePreferences vmware_engine_preferences = 7;
+ * @param \Google\Cloud\MigrationCenter\V1\VmwareEnginePreferences $var
+ * @return $this
+ */
+ public function setVmwareEnginePreferences($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\VmwareEnginePreferences::class);
+ $this->vmware_engine_preferences = $var;
+
+ return $this;
+ }
+
+ /**
+ * Preferences concerning Sole Tenant nodes and virtual machines.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.SoleTenancyPreferences sole_tenancy_preferences = 8;
+ * @return \Google\Cloud\MigrationCenter\V1\SoleTenancyPreferences|null
+ */
+ public function getSoleTenancyPreferences()
+ {
+ return $this->sole_tenancy_preferences;
+ }
+
+ public function hasSoleTenancyPreferences()
+ {
+ return isset($this->sole_tenancy_preferences);
+ }
+
+ public function clearSoleTenancyPreferences()
+ {
+ unset($this->sole_tenancy_preferences);
+ }
+
+ /**
+ * Preferences concerning Sole Tenant nodes and virtual machines.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.SoleTenancyPreferences sole_tenancy_preferences = 8;
+ * @param \Google\Cloud\MigrationCenter\V1\SoleTenancyPreferences $var
+ * @return $this
+ */
+ public function setSoleTenancyPreferences($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\MigrationCenter\V1\SoleTenancyPreferences::class);
+ $this->sole_tenancy_preferences = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareDiskConfig.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareDiskConfig.php
new file mode 100644
index 000000000000..ae83912c74aa
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareDiskConfig.php
@@ -0,0 +1,169 @@
+google.cloud.migrationcenter.v1.VmwareDiskConfig
+ */
+class VmwareDiskConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * VMDK backing type.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareDiskConfig.BackingType backing_type = 1;
+ */
+ protected $backing_type = 0;
+ /**
+ * Is VMDK shared with other VMs.
+ *
+ * Generated from protobuf field bool shared = 2;
+ */
+ protected $shared = false;
+ /**
+ * VMDK disk mode.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareDiskConfig.VmdkMode vmdk_mode = 3;
+ */
+ protected $vmdk_mode = 0;
+ /**
+ * RDM compatibility mode.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareDiskConfig.RdmCompatibility rdm_compatibility = 4;
+ */
+ protected $rdm_compatibility = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $backing_type
+ * VMDK backing type.
+ * @type bool $shared
+ * Is VMDK shared with other VMs.
+ * @type int $vmdk_mode
+ * VMDK disk mode.
+ * @type int $rdm_compatibility
+ * RDM compatibility mode.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * VMDK backing type.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareDiskConfig.BackingType backing_type = 1;
+ * @return int
+ */
+ public function getBackingType()
+ {
+ return $this->backing_type;
+ }
+
+ /**
+ * VMDK backing type.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareDiskConfig.BackingType backing_type = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setBackingType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\VmwareDiskConfig\BackingType::class);
+ $this->backing_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Is VMDK shared with other VMs.
+ *
+ * Generated from protobuf field bool shared = 2;
+ * @return bool
+ */
+ public function getShared()
+ {
+ return $this->shared;
+ }
+
+ /**
+ * Is VMDK shared with other VMs.
+ *
+ * Generated from protobuf field bool shared = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setShared($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->shared = $var;
+
+ return $this;
+ }
+
+ /**
+ * VMDK disk mode.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareDiskConfig.VmdkMode vmdk_mode = 3;
+ * @return int
+ */
+ public function getVmdkMode()
+ {
+ return $this->vmdk_mode;
+ }
+
+ /**
+ * VMDK disk mode.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareDiskConfig.VmdkMode vmdk_mode = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setVmdkMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\VmwareDiskConfig\VmdkMode::class);
+ $this->vmdk_mode = $var;
+
+ return $this;
+ }
+
+ /**
+ * RDM compatibility mode.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareDiskConfig.RdmCompatibility rdm_compatibility = 4;
+ * @return int
+ */
+ public function getRdmCompatibility()
+ {
+ return $this->rdm_compatibility;
+ }
+
+ /**
+ * RDM compatibility mode.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareDiskConfig.RdmCompatibility rdm_compatibility = 4;
+ * @param int $var
+ * @return $this
+ */
+ public function setRdmCompatibility($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\VmwareDiskConfig\RdmCompatibility::class);
+ $this->rdm_compatibility = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareDiskConfig/BackingType.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareDiskConfig/BackingType.php
new file mode 100644
index 000000000000..1b22c3b4e692
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareDiskConfig/BackingType.php
@@ -0,0 +1,106 @@
+google.cloud.migrationcenter.v1.VmwareDiskConfig.BackingType
+ */
+class BackingType
+{
+ /**
+ * Default value.
+ *
+ * Generated from protobuf enum BACKING_TYPE_UNSPECIFIED = 0;
+ */
+ const BACKING_TYPE_UNSPECIFIED = 0;
+ /**
+ * Flat v1.
+ *
+ * Generated from protobuf enum BACKING_TYPE_FLAT_V1 = 1;
+ */
+ const BACKING_TYPE_FLAT_V1 = 1;
+ /**
+ * Flat v2.
+ *
+ * Generated from protobuf enum BACKING_TYPE_FLAT_V2 = 2;
+ */
+ const BACKING_TYPE_FLAT_V2 = 2;
+ /**
+ * Persistent memory, also known as Non-Volatile Memory (NVM).
+ *
+ * Generated from protobuf enum BACKING_TYPE_PMEM = 3;
+ */
+ const BACKING_TYPE_PMEM = 3;
+ /**
+ * Raw Disk Memory v1.
+ *
+ * Generated from protobuf enum BACKING_TYPE_RDM_V1 = 4;
+ */
+ const BACKING_TYPE_RDM_V1 = 4;
+ /**
+ * Raw Disk Memory v2.
+ *
+ * Generated from protobuf enum BACKING_TYPE_RDM_V2 = 5;
+ */
+ const BACKING_TYPE_RDM_V2 = 5;
+ /**
+ * SEsparse is a snapshot format introduced in vSphere 5.5 for large disks.
+ *
+ * Generated from protobuf enum BACKING_TYPE_SESPARSE = 6;
+ */
+ const BACKING_TYPE_SESPARSE = 6;
+ /**
+ * SEsparse v1.
+ *
+ * Generated from protobuf enum BACKING_TYPE_SESPARSE_V1 = 7;
+ */
+ const BACKING_TYPE_SESPARSE_V1 = 7;
+ /**
+ * SEsparse v1.
+ *
+ * Generated from protobuf enum BACKING_TYPE_SESPARSE_V2 = 8;
+ */
+ const BACKING_TYPE_SESPARSE_V2 = 8;
+
+ private static $valueToName = [
+ self::BACKING_TYPE_UNSPECIFIED => 'BACKING_TYPE_UNSPECIFIED',
+ self::BACKING_TYPE_FLAT_V1 => 'BACKING_TYPE_FLAT_V1',
+ self::BACKING_TYPE_FLAT_V2 => 'BACKING_TYPE_FLAT_V2',
+ self::BACKING_TYPE_PMEM => 'BACKING_TYPE_PMEM',
+ self::BACKING_TYPE_RDM_V1 => 'BACKING_TYPE_RDM_V1',
+ self::BACKING_TYPE_RDM_V2 => 'BACKING_TYPE_RDM_V2',
+ self::BACKING_TYPE_SESPARSE => 'BACKING_TYPE_SESPARSE',
+ self::BACKING_TYPE_SESPARSE_V1 => 'BACKING_TYPE_SESPARSE_V1',
+ self::BACKING_TYPE_SESPARSE_V2 => 'BACKING_TYPE_SESPARSE_V2',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(BackingType::class, \Google\Cloud\MigrationCenter\V1\VmwareDiskConfig_BackingType::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareDiskConfig/RdmCompatibility.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareDiskConfig/RdmCompatibility.php
new file mode 100644
index 000000000000..ff224da8e130
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareDiskConfig/RdmCompatibility.php
@@ -0,0 +1,64 @@
+google.cloud.migrationcenter.v1.VmwareDiskConfig.RdmCompatibility
+ */
+class RdmCompatibility
+{
+ /**
+ * Compatibility mode unspecified or unknown.
+ *
+ * Generated from protobuf enum RDM_COMPATIBILITY_UNSPECIFIED = 0;
+ */
+ const RDM_COMPATIBILITY_UNSPECIFIED = 0;
+ /**
+ * Physical compatibility mode.
+ *
+ * Generated from protobuf enum PHYSICAL_COMPATIBILITY = 1;
+ */
+ const PHYSICAL_COMPATIBILITY = 1;
+ /**
+ * Virtual compatibility mode.
+ *
+ * Generated from protobuf enum VIRTUAL_COMPATIBILITY = 2;
+ */
+ const VIRTUAL_COMPATIBILITY = 2;
+
+ private static $valueToName = [
+ self::RDM_COMPATIBILITY_UNSPECIFIED => 'RDM_COMPATIBILITY_UNSPECIFIED',
+ self::PHYSICAL_COMPATIBILITY => 'PHYSICAL_COMPATIBILITY',
+ self::VIRTUAL_COMPATIBILITY => 'VIRTUAL_COMPATIBILITY',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(RdmCompatibility::class, \Google\Cloud\MigrationCenter\V1\VmwareDiskConfig_RdmCompatibility::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareDiskConfig/VmdkMode.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareDiskConfig/VmdkMode.php
new file mode 100644
index 000000000000..808f36b21778
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareDiskConfig/VmdkMode.php
@@ -0,0 +1,71 @@
+google.cloud.migrationcenter.v1.VmwareDiskConfig.VmdkMode
+ */
+class VmdkMode
+{
+ /**
+ * VMDK disk mode unspecified or unknown.
+ *
+ * Generated from protobuf enum VMDK_MODE_UNSPECIFIED = 0;
+ */
+ const VMDK_MODE_UNSPECIFIED = 0;
+ /**
+ * Dependent disk mode.
+ *
+ * Generated from protobuf enum DEPENDENT = 1;
+ */
+ const DEPENDENT = 1;
+ /**
+ * Independent - Persistent disk mode.
+ *
+ * Generated from protobuf enum INDEPENDENT_PERSISTENT = 2;
+ */
+ const INDEPENDENT_PERSISTENT = 2;
+ /**
+ * Independent - Nonpersistent disk mode.
+ *
+ * Generated from protobuf enum INDEPENDENT_NONPERSISTENT = 3;
+ */
+ const INDEPENDENT_NONPERSISTENT = 3;
+
+ private static $valueToName = [
+ self::VMDK_MODE_UNSPECIFIED => 'VMDK_MODE_UNSPECIFIED',
+ self::DEPENDENT => 'DEPENDENT',
+ self::INDEPENDENT_PERSISTENT => 'INDEPENDENT_PERSISTENT',
+ self::INDEPENDENT_NONPERSISTENT => 'INDEPENDENT_NONPERSISTENT',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(VmdkMode::class, \Google\Cloud\MigrationCenter\V1\VmwareDiskConfig_VmdkMode::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareEnginePreferences.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareEnginePreferences.php
new file mode 100644
index 000000000000..bad6fe515a83
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareEnginePreferences.php
@@ -0,0 +1,217 @@
+google.cloud.migrationcenter.v1.VmwareEnginePreferences
+ */
+class VmwareEnginePreferences extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * CPU overcommit ratio.
+ * Acceptable values are between 1.0 and 8.0, with 0.1 increment.
+ *
+ * Generated from protobuf field double cpu_overcommit_ratio = 1;
+ */
+ protected $cpu_overcommit_ratio = 0.0;
+ /**
+ * Memory overcommit ratio.
+ * Acceptable values are 1.0, 1.25, 1.5, 1.75 and 2.0.
+ *
+ * Generated from protobuf field double memory_overcommit_ratio = 2;
+ */
+ protected $memory_overcommit_ratio = 0.0;
+ /**
+ * The Deduplication and Compression ratio is based on the logical (Used
+ * Before) space required to store data before applying deduplication and
+ * compression, in relation to the physical (Used After) space required after
+ * applying deduplication and compression. Specifically, the ratio is the Used
+ * Before space divided by the Used After space. For example, if the Used
+ * Before space is 3 GB, but the physical Used After space is 1 GB, the
+ * deduplication and compression ratio is 3x. Acceptable values are
+ * between 1.0 and 4.0.
+ *
+ * Generated from protobuf field double storage_deduplication_compression_ratio = 3;
+ */
+ protected $storage_deduplication_compression_ratio = 0.0;
+ /**
+ * Commitment plan to consider when calculating costs for virtual machine
+ * insights and recommendations.
+ * If you are unsure which value to set, a 3 year commitment plan is often a
+ * good value to start with.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareEnginePreferences.CommitmentPlan commitment_plan = 4;
+ */
+ protected $commitment_plan = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type float $cpu_overcommit_ratio
+ * CPU overcommit ratio.
+ * Acceptable values are between 1.0 and 8.0, with 0.1 increment.
+ * @type float $memory_overcommit_ratio
+ * Memory overcommit ratio.
+ * Acceptable values are 1.0, 1.25, 1.5, 1.75 and 2.0.
+ * @type float $storage_deduplication_compression_ratio
+ * The Deduplication and Compression ratio is based on the logical (Used
+ * Before) space required to store data before applying deduplication and
+ * compression, in relation to the physical (Used After) space required after
+ * applying deduplication and compression. Specifically, the ratio is the Used
+ * Before space divided by the Used After space. For example, if the Used
+ * Before space is 3 GB, but the physical Used After space is 1 GB, the
+ * deduplication and compression ratio is 3x. Acceptable values are
+ * between 1.0 and 4.0.
+ * @type int $commitment_plan
+ * Commitment plan to consider when calculating costs for virtual machine
+ * insights and recommendations.
+ * If you are unsure which value to set, a 3 year commitment plan is often a
+ * good value to start with.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * CPU overcommit ratio.
+ * Acceptable values are between 1.0 and 8.0, with 0.1 increment.
+ *
+ * Generated from protobuf field double cpu_overcommit_ratio = 1;
+ * @return float
+ */
+ public function getCpuOvercommitRatio()
+ {
+ return $this->cpu_overcommit_ratio;
+ }
+
+ /**
+ * CPU overcommit ratio.
+ * Acceptable values are between 1.0 and 8.0, with 0.1 increment.
+ *
+ * Generated from protobuf field double cpu_overcommit_ratio = 1;
+ * @param float $var
+ * @return $this
+ */
+ public function setCpuOvercommitRatio($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->cpu_overcommit_ratio = $var;
+
+ return $this;
+ }
+
+ /**
+ * Memory overcommit ratio.
+ * Acceptable values are 1.0, 1.25, 1.5, 1.75 and 2.0.
+ *
+ * Generated from protobuf field double memory_overcommit_ratio = 2;
+ * @return float
+ */
+ public function getMemoryOvercommitRatio()
+ {
+ return $this->memory_overcommit_ratio;
+ }
+
+ /**
+ * Memory overcommit ratio.
+ * Acceptable values are 1.0, 1.25, 1.5, 1.75 and 2.0.
+ *
+ * Generated from protobuf field double memory_overcommit_ratio = 2;
+ * @param float $var
+ * @return $this
+ */
+ public function setMemoryOvercommitRatio($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->memory_overcommit_ratio = $var;
+
+ return $this;
+ }
+
+ /**
+ * The Deduplication and Compression ratio is based on the logical (Used
+ * Before) space required to store data before applying deduplication and
+ * compression, in relation to the physical (Used After) space required after
+ * applying deduplication and compression. Specifically, the ratio is the Used
+ * Before space divided by the Used After space. For example, if the Used
+ * Before space is 3 GB, but the physical Used After space is 1 GB, the
+ * deduplication and compression ratio is 3x. Acceptable values are
+ * between 1.0 and 4.0.
+ *
+ * Generated from protobuf field double storage_deduplication_compression_ratio = 3;
+ * @return float
+ */
+ public function getStorageDeduplicationCompressionRatio()
+ {
+ return $this->storage_deduplication_compression_ratio;
+ }
+
+ /**
+ * The Deduplication and Compression ratio is based on the logical (Used
+ * Before) space required to store data before applying deduplication and
+ * compression, in relation to the physical (Used After) space required after
+ * applying deduplication and compression. Specifically, the ratio is the Used
+ * Before space divided by the Used After space. For example, if the Used
+ * Before space is 3 GB, but the physical Used After space is 1 GB, the
+ * deduplication and compression ratio is 3x. Acceptable values are
+ * between 1.0 and 4.0.
+ *
+ * Generated from protobuf field double storage_deduplication_compression_ratio = 3;
+ * @param float $var
+ * @return $this
+ */
+ public function setStorageDeduplicationCompressionRatio($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->storage_deduplication_compression_ratio = $var;
+
+ return $this;
+ }
+
+ /**
+ * Commitment plan to consider when calculating costs for virtual machine
+ * insights and recommendations.
+ * If you are unsure which value to set, a 3 year commitment plan is often a
+ * good value to start with.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareEnginePreferences.CommitmentPlan commitment_plan = 4;
+ * @return int
+ */
+ public function getCommitmentPlan()
+ {
+ return $this->commitment_plan;
+ }
+
+ /**
+ * Commitment plan to consider when calculating costs for virtual machine
+ * insights and recommendations.
+ * If you are unsure which value to set, a 3 year commitment plan is often a
+ * good value to start with.
+ *
+ * Generated from protobuf field .google.cloud.migrationcenter.v1.VmwareEnginePreferences.CommitmentPlan commitment_plan = 4;
+ * @param int $var
+ * @return $this
+ */
+ public function setCommitmentPlan($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\MigrationCenter\V1\VmwareEnginePreferences\CommitmentPlan::class);
+ $this->commitment_plan = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareEnginePreferences/CommitmentPlan.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareEnginePreferences/CommitmentPlan.php
new file mode 100644
index 000000000000..6f7f3204713f
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwareEnginePreferences/CommitmentPlan.php
@@ -0,0 +1,85 @@
+google.cloud.migrationcenter.v1.VmwareEnginePreferences.CommitmentPlan
+ */
+class CommitmentPlan
+{
+ /**
+ * Unspecified commitment plan.
+ *
+ * Generated from protobuf enum COMMITMENT_PLAN_UNSPECIFIED = 0;
+ */
+ const COMMITMENT_PLAN_UNSPECIFIED = 0;
+ /**
+ * No commitment plan (on-demand usage).
+ *
+ * Generated from protobuf enum ON_DEMAND = 1;
+ */
+ const ON_DEMAND = 1;
+ /**
+ * 1 year commitment (monthly payments).
+ *
+ * Generated from protobuf enum COMMITMENT_1_YEAR_MONTHLY_PAYMENTS = 2;
+ */
+ const COMMITMENT_1_YEAR_MONTHLY_PAYMENTS = 2;
+ /**
+ * 3 year commitment (monthly payments).
+ *
+ * Generated from protobuf enum COMMITMENT_3_YEAR_MONTHLY_PAYMENTS = 3;
+ */
+ const COMMITMENT_3_YEAR_MONTHLY_PAYMENTS = 3;
+ /**
+ * 1 year commitment (upfront payment).
+ *
+ * Generated from protobuf enum COMMITMENT_1_YEAR_UPFRONT_PAYMENT = 4;
+ */
+ const COMMITMENT_1_YEAR_UPFRONT_PAYMENT = 4;
+ /**
+ * 3 years commitment (upfront payment).
+ *
+ * Generated from protobuf enum COMMITMENT_3_YEAR_UPFRONT_PAYMENT = 5;
+ */
+ const COMMITMENT_3_YEAR_UPFRONT_PAYMENT = 5;
+
+ private static $valueToName = [
+ self::COMMITMENT_PLAN_UNSPECIFIED => 'COMMITMENT_PLAN_UNSPECIFIED',
+ self::ON_DEMAND => 'ON_DEMAND',
+ self::COMMITMENT_1_YEAR_MONTHLY_PAYMENTS => 'COMMITMENT_1_YEAR_MONTHLY_PAYMENTS',
+ self::COMMITMENT_3_YEAR_MONTHLY_PAYMENTS => 'COMMITMENT_3_YEAR_MONTHLY_PAYMENTS',
+ self::COMMITMENT_1_YEAR_UPFRONT_PAYMENT => 'COMMITMENT_1_YEAR_UPFRONT_PAYMENT',
+ self::COMMITMENT_3_YEAR_UPFRONT_PAYMENT => 'COMMITMENT_3_YEAR_UPFRONT_PAYMENT',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CommitmentPlan::class, \Google\Cloud\MigrationCenter\V1\VmwareEnginePreferences_CommitmentPlan::class);
+
diff --git a/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwarePlatformDetails.php b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwarePlatformDetails.php
new file mode 100644
index 000000000000..45c08c9c3398
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/proto/src/Google/Cloud/MigrationCenter/V1/VmwarePlatformDetails.php
@@ -0,0 +1,241 @@
+google.cloud.migrationcenter.v1.VmwarePlatformDetails
+ */
+class VmwarePlatformDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * vCenter version.
+ *
+ * Generated from protobuf field string vcenter_version = 1;
+ */
+ protected $vcenter_version = '';
+ /**
+ * ESX version.
+ *
+ * Generated from protobuf field string esx_version = 2;
+ */
+ protected $esx_version = '';
+ /**
+ * VMware os enum -
+ * https://vdc-repo.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html.
+ *
+ * Generated from protobuf field string osid = 3;
+ */
+ protected $osid = '';
+ /**
+ * Folder name in vCenter where asset resides.
+ *
+ * Generated from protobuf field string vcenter_folder = 4;
+ */
+ protected $vcenter_folder = '';
+ /**
+ * vCenter URI used in collection.
+ *
+ * Generated from protobuf field string vcenter_uri = 5;
+ */
+ protected $vcenter_uri = '';
+ /**
+ * vCenter VM ID.
+ *
+ * Generated from protobuf field string vcenter_vm_id = 6;
+ */
+ protected $vcenter_vm_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $vcenter_version
+ * vCenter version.
+ * @type string $esx_version
+ * ESX version.
+ * @type string $osid
+ * VMware os enum -
+ * https://vdc-repo.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html.
+ * @type string $vcenter_folder
+ * Folder name in vCenter where asset resides.
+ * @type string $vcenter_uri
+ * vCenter URI used in collection.
+ * @type string $vcenter_vm_id
+ * vCenter VM ID.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Migrationcenter\V1\Migrationcenter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * vCenter version.
+ *
+ * Generated from protobuf field string vcenter_version = 1;
+ * @return string
+ */
+ public function getVcenterVersion()
+ {
+ return $this->vcenter_version;
+ }
+
+ /**
+ * vCenter version.
+ *
+ * Generated from protobuf field string vcenter_version = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setVcenterVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->vcenter_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * ESX version.
+ *
+ * Generated from protobuf field string esx_version = 2;
+ * @return string
+ */
+ public function getEsxVersion()
+ {
+ return $this->esx_version;
+ }
+
+ /**
+ * ESX version.
+ *
+ * Generated from protobuf field string esx_version = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setEsxVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->esx_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * VMware os enum -
+ * https://vdc-repo.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html.
+ *
+ * Generated from protobuf field string osid = 3;
+ * @return string
+ */
+ public function getOsid()
+ {
+ return $this->osid;
+ }
+
+ /**
+ * VMware os enum -
+ * https://vdc-repo.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html.
+ *
+ * Generated from protobuf field string osid = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setOsid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->osid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Folder name in vCenter where asset resides.
+ *
+ * Generated from protobuf field string vcenter_folder = 4;
+ * @return string
+ */
+ public function getVcenterFolder()
+ {
+ return $this->vcenter_folder;
+ }
+
+ /**
+ * Folder name in vCenter where asset resides.
+ *
+ * Generated from protobuf field string vcenter_folder = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setVcenterFolder($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->vcenter_folder = $var;
+
+ return $this;
+ }
+
+ /**
+ * vCenter URI used in collection.
+ *
+ * Generated from protobuf field string vcenter_uri = 5;
+ * @return string
+ */
+ public function getVcenterUri()
+ {
+ return $this->vcenter_uri;
+ }
+
+ /**
+ * vCenter URI used in collection.
+ *
+ * Generated from protobuf field string vcenter_uri = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setVcenterUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->vcenter_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * vCenter VM ID.
+ *
+ * Generated from protobuf field string vcenter_vm_id = 6;
+ * @return string
+ */
+ public function getVcenterVmId()
+ {
+ return $this->vcenter_vm_id;
+ }
+
+ /**
+ * vCenter VM ID.
+ *
+ * Generated from protobuf field string vcenter_vm_id = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setVcenterVmId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->vcenter_vm_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/add_assets_to_group.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/add_assets_to_group.php
new file mode 100644
index 000000000000..dc19807c3ac9
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/add_assets_to_group.php
@@ -0,0 +1,97 @@
+setAssetIds($formattedAssetsAssetIds);
+ $request = (new AddAssetsToGroupRequest())
+ ->setGroup($formattedGroup)
+ ->setAssets($assets);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->addAssetsToGroup($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Group $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedGroup = MigrationCenterClient::groupName('[PROJECT]', '[LOCATION]', '[GROUP]');
+ $formattedAssetsAssetIdsElement = MigrationCenterClient::assetName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[ASSET]'
+ );
+
+ add_assets_to_group_sample($formattedGroup, $formattedAssetsAssetIdsElement);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_AddAssetsToGroup_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/aggregate_assets_values.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/aggregate_assets_values.php
new file mode 100644
index 000000000000..6d5f7cabd828
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/aggregate_assets_values.php
@@ -0,0 +1,70 @@
+setParent($parent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var AggregateAssetsValuesResponse $response */
+ $response = $migrationCenterClient->aggregateAssetsValues($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $parent = '[PARENT]';
+
+ aggregate_assets_values_sample($parent);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_AggregateAssetsValues_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/batch_delete_assets.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/batch_delete_assets.php
new file mode 100644
index 000000000000..2318fd82f7f3
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/batch_delete_assets.php
@@ -0,0 +1,76 @@
+setParent($formattedParent)
+ ->setNames($formattedNames);
+
+ // Call the API and handle any network failures.
+ try {
+ $migrationCenterClient->batchDeleteAssets($request);
+ printf('Call completed successfully.' . PHP_EOL);
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::locationName('[PROJECT]', '[LOCATION]');
+ $formattedNamesElement = MigrationCenterClient::assetName('[PROJECT]', '[LOCATION]', '[ASSET]');
+
+ batch_delete_assets_sample($formattedParent, $formattedNamesElement);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_BatchDeleteAssets_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/batch_update_assets.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/batch_update_assets.php
new file mode 100644
index 000000000000..cf665e64b4d4
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/batch_update_assets.php
@@ -0,0 +1,81 @@
+setUpdateMask($requestsUpdateMask)
+ ->setAsset($requestsAsset);
+ $requests = [$updateAssetRequest,];
+ $request = (new BatchUpdateAssetsRequest())
+ ->setParent($formattedParent)
+ ->setRequests($requests);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var BatchUpdateAssetsResponse $response */
+ $response = $migrationCenterClient->batchUpdateAssets($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::locationName('[PROJECT]', '[LOCATION]');
+
+ batch_update_assets_sample($formattedParent);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_BatchUpdateAssets_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_group.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_group.php
new file mode 100644
index 000000000000..a99fb5d2d373
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_group.php
@@ -0,0 +1,92 @@
+setParent($formattedParent)
+ ->setGroupId($groupId)
+ ->setGroup($group);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->createGroup($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Group $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::locationName('[PROJECT]', '[LOCATION]');
+ $groupId = '[GROUP_ID]';
+
+ create_group_sample($formattedParent, $groupId);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_CreateGroup_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_import_data_file.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_import_data_file.php
new file mode 100644
index 000000000000..c067eeac2738
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_import_data_file.php
@@ -0,0 +1,95 @@
+setFormat($importDataFileFormat);
+ $request = (new CreateImportDataFileRequest())
+ ->setParent($formattedParent)
+ ->setImportDataFileId($importDataFileId)
+ ->setImportDataFile($importDataFile);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->createImportDataFile($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var ImportDataFile $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::importJobName('[PROJECT]', '[LOCATION]', '[IMPORT_JOB]');
+ $importDataFileId = '[IMPORT_DATA_FILE_ID]';
+ $importDataFileFormat = ImportJobFormat::IMPORT_JOB_FORMAT_UNSPECIFIED;
+
+ create_import_data_file_sample($formattedParent, $importDataFileId, $importDataFileFormat);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_CreateImportDataFile_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_import_job.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_import_job.php
new file mode 100644
index 000000000000..581e2f65c76f
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_import_job.php
@@ -0,0 +1,99 @@
+setAssetSource($formattedImportJobAssetSource);
+ $request = (new CreateImportJobRequest())
+ ->setParent($formattedParent)
+ ->setImportJobId($importJobId)
+ ->setImportJob($importJob);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->createImportJob($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var ImportJob $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::locationName('[PROJECT]', '[LOCATION]');
+ $importJobId = '[IMPORT_JOB_ID]';
+ $formattedImportJobAssetSource = MigrationCenterClient::sourceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SOURCE]'
+ );
+
+ create_import_job_sample($formattedParent, $importJobId, $formattedImportJobAssetSource);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_CreateImportJob_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_preference_set.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_preference_set.php
new file mode 100644
index 000000000000..ffa0df62a728
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_preference_set.php
@@ -0,0 +1,93 @@
+setParent($formattedParent)
+ ->setPreferenceSetId($preferenceSetId)
+ ->setPreferenceSet($preferenceSet);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->createPreferenceSet($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var PreferenceSet $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::locationName('[PROJECT]', '[LOCATION]');
+ $preferenceSetId = '[PREFERENCE_SET_ID]';
+
+ create_preference_set_sample($formattedParent, $preferenceSetId);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_CreatePreferenceSet_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_report.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_report.php
new file mode 100644
index 000000000000..9a56a41ee130
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_report.php
@@ -0,0 +1,96 @@
+setParent($formattedParent)
+ ->setReportId($reportId)
+ ->setReport($report);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->createReport($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Report $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::reportConfigName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPORT_CONFIG]'
+ );
+ $reportId = '[REPORT_ID]';
+
+ create_report_sample($formattedParent, $reportId);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_CreateReport_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_report_config.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_report_config.php
new file mode 100644
index 000000000000..ea635c561aa0
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_report_config.php
@@ -0,0 +1,121 @@
+setGroup($formattedReportConfigGroupPreferencesetAssignmentsGroup)
+ ->setPreferenceSet($formattedReportConfigGroupPreferencesetAssignmentsPreferenceSet);
+ $reportConfigGroupPreferencesetAssignments = [$groupPreferenceSetAssignment,];
+ $reportConfig = (new ReportConfig())
+ ->setGroupPreferencesetAssignments($reportConfigGroupPreferencesetAssignments);
+ $request = (new CreateReportConfigRequest())
+ ->setParent($formattedParent)
+ ->setReportConfigId($reportConfigId)
+ ->setReportConfig($reportConfig);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->createReportConfig($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var ReportConfig $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::locationName('[PROJECT]', '[LOCATION]');
+ $reportConfigId = '[REPORT_CONFIG_ID]';
+ $formattedReportConfigGroupPreferencesetAssignmentsGroup = MigrationCenterClient::groupName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[GROUP]'
+ );
+ $formattedReportConfigGroupPreferencesetAssignmentsPreferenceSet = MigrationCenterClient::preferenceSetName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[PREFERENCE_SET]'
+ );
+
+ create_report_config_sample(
+ $formattedParent,
+ $reportConfigId,
+ $formattedReportConfigGroupPreferencesetAssignmentsGroup,
+ $formattedReportConfigGroupPreferencesetAssignmentsPreferenceSet
+ );
+}
+// [END migrationcenter_v1_generated_MigrationCenter_CreateReportConfig_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_source.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_source.php
new file mode 100644
index 000000000000..f2c02b41062f
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/create_source.php
@@ -0,0 +1,92 @@
+setParent($formattedParent)
+ ->setSourceId($sourceId)
+ ->setSource($source);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->createSource($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Source $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::locationName('[PROJECT]', '[LOCATION]');
+ $sourceId = '[SOURCE_ID]';
+
+ create_source_sample($formattedParent, $sourceId);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_CreateSource_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_asset.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_asset.php
new file mode 100644
index 000000000000..8f82a66e9e9f
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_asset.php
@@ -0,0 +1,69 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $migrationCenterClient->deleteAsset($request);
+ printf('Call completed successfully.' . PHP_EOL);
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::assetName('[PROJECT]', '[LOCATION]', '[ASSET]');
+
+ delete_asset_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_DeleteAsset_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_group.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_group.php
new file mode 100644
index 000000000000..1c19e10c4a1f
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_group.php
@@ -0,0 +1,80 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->deleteGroup($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::groupName('[PROJECT]', '[LOCATION]', '[GROUP]');
+
+ delete_group_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_DeleteGroup_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_import_data_file.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_import_data_file.php
new file mode 100644
index 000000000000..78c5c71100a5
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_import_data_file.php
@@ -0,0 +1,85 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->deleteImportDataFile($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::importDataFileName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[IMPORT_JOB]',
+ '[IMPORT_DATA_FILE]'
+ );
+
+ delete_import_data_file_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_DeleteImportDataFile_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_import_job.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_import_job.php
new file mode 100644
index 000000000000..ab52f6c8e4ed
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_import_job.php
@@ -0,0 +1,80 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->deleteImportJob($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::importJobName('[PROJECT]', '[LOCATION]', '[IMPORT_JOB]');
+
+ delete_import_job_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_DeleteImportJob_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_preference_set.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_preference_set.php
new file mode 100644
index 000000000000..9292f8d5b266
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_preference_set.php
@@ -0,0 +1,84 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->deletePreferenceSet($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::preferenceSetName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[PREFERENCE_SET]'
+ );
+
+ delete_preference_set_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_DeletePreferenceSet_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_report.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_report.php
new file mode 100644
index 000000000000..ac40fe41c2b1
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_report.php
@@ -0,0 +1,85 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->deleteReport($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::reportName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPORT_CONFIG]',
+ '[REPORT]'
+ );
+
+ delete_report_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_DeleteReport_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_report_config.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_report_config.php
new file mode 100644
index 000000000000..3153aaf8eda5
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_report_config.php
@@ -0,0 +1,84 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->deleteReportConfig($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::reportConfigName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPORT_CONFIG]'
+ );
+
+ delete_report_config_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_DeleteReportConfig_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_source.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_source.php
new file mode 100644
index 000000000000..a82cdfa562f5
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/delete_source.php
@@ -0,0 +1,80 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->deleteSource($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::sourceName('[PROJECT]', '[LOCATION]', '[SOURCE]');
+
+ delete_source_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_DeleteSource_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_asset.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_asset.php
new file mode 100644
index 000000000000..c6acf97ed498
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_asset.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Asset $response */
+ $response = $migrationCenterClient->getAsset($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::assetName('[PROJECT]', '[LOCATION]', '[ASSET]');
+
+ get_asset_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_GetAsset_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_error_frame.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_error_frame.php
new file mode 100644
index 000000000000..8534e71a90a5
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_error_frame.php
@@ -0,0 +1,78 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ErrorFrame $response */
+ $response = $migrationCenterClient->getErrorFrame($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::errorFrameName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SOURCE]',
+ '[ERROR_FRAME]'
+ );
+
+ get_error_frame_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_GetErrorFrame_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_group.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_group.php
new file mode 100644
index 000000000000..bcf0bbb0fbf0
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_group.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Group $response */
+ $response = $migrationCenterClient->getGroup($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::groupName('[PROJECT]', '[LOCATION]', '[GROUP]');
+
+ get_group_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_GetGroup_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_import_data_file.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_import_data_file.php
new file mode 100644
index 000000000000..171bbfbc3e26
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_import_data_file.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ImportDataFile $response */
+ $response = $migrationCenterClient->getImportDataFile($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::importDataFileName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[IMPORT_JOB]',
+ '[IMPORT_DATA_FILE]'
+ );
+
+ get_import_data_file_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_GetImportDataFile_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_import_job.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_import_job.php
new file mode 100644
index 000000000000..866f2e31e7ff
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_import_job.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ImportJob $response */
+ $response = $migrationCenterClient->getImportJob($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::importJobName('[PROJECT]', '[LOCATION]', '[IMPORT_JOB]');
+
+ get_import_job_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_GetImportJob_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_location.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_location.php
new file mode 100644
index 000000000000..6413993b0568
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_location.php
@@ -0,0 +1,57 @@
+getLocation($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END migrationcenter_v1_generated_MigrationCenter_GetLocation_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_preference_set.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_preference_set.php
new file mode 100644
index 000000000000..9d715db7c7aa
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_preference_set.php
@@ -0,0 +1,75 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PreferenceSet $response */
+ $response = $migrationCenterClient->getPreferenceSet($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::preferenceSetName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[PREFERENCE_SET]'
+ );
+
+ get_preference_set_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_GetPreferenceSet_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_report.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_report.php
new file mode 100644
index 000000000000..10356b021038
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_report.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Report $response */
+ $response = $migrationCenterClient->getReport($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::reportName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPORT_CONFIG]',
+ '[REPORT]'
+ );
+
+ get_report_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_GetReport_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_report_config.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_report_config.php
new file mode 100644
index 000000000000..e3baaf6aeb01
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_report_config.php
@@ -0,0 +1,75 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ReportConfig $response */
+ $response = $migrationCenterClient->getReportConfig($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::reportConfigName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPORT_CONFIG]'
+ );
+
+ get_report_config_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_GetReportConfig_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_settings.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_settings.php
new file mode 100644
index 000000000000..47ecdfb1b626
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_settings.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Settings $response */
+ $response = $migrationCenterClient->getSettings($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::settingsName('[PROJECT]', '[LOCATION]');
+
+ get_settings_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_GetSettings_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_source.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_source.php
new file mode 100644
index 000000000000..5a1ee035ecfd
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/get_source.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Source $response */
+ $response = $migrationCenterClient->getSource($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::sourceName('[PROJECT]', '[LOCATION]', '[SOURCE]');
+
+ get_source_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_GetSource_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_assets.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_assets.php
new file mode 100644
index 000000000000..eb6f413f3efd
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_assets.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $migrationCenterClient->listAssets($request);
+
+ /** @var Asset $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_assets_sample($formattedParent);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_ListAssets_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_error_frames.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_error_frames.php
new file mode 100644
index 000000000000..148fa203f681
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_error_frames.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $migrationCenterClient->listErrorFrames($request);
+
+ /** @var ErrorFrame $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::sourceName('[PROJECT]', '[LOCATION]', '[SOURCE]');
+
+ list_error_frames_sample($formattedParent);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_ListErrorFrames_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_groups.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_groups.php
new file mode 100644
index 000000000000..886ab3dfc3d4
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_groups.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $migrationCenterClient->listGroups($request);
+
+ /** @var Group $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_groups_sample($formattedParent);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_ListGroups_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_import_data_files.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_import_data_files.php
new file mode 100644
index 000000000000..4b14ec35055e
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_import_data_files.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $migrationCenterClient->listImportDataFiles($request);
+
+ /** @var ImportDataFile $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::importJobName('[PROJECT]', '[LOCATION]', '[IMPORT_JOB]');
+
+ list_import_data_files_sample($formattedParent);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_ListImportDataFiles_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_import_jobs.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_import_jobs.php
new file mode 100644
index 000000000000..121b05e94636
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_import_jobs.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $migrationCenterClient->listImportJobs($request);
+
+ /** @var ImportJob $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_import_jobs_sample($formattedParent);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_ListImportJobs_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_locations.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_locations.php
new file mode 100644
index 000000000000..f1cce4e51c90
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_locations.php
@@ -0,0 +1,62 @@
+listLocations($request);
+
+ /** @var Location $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END migrationcenter_v1_generated_MigrationCenter_ListLocations_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_preference_sets.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_preference_sets.php
new file mode 100644
index 000000000000..1dc0251d994a
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_preference_sets.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $migrationCenterClient->listPreferenceSets($request);
+
+ /** @var PreferenceSet $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_preference_sets_sample($formattedParent);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_ListPreferenceSets_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_report_configs.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_report_configs.php
new file mode 100644
index 000000000000..36bcbf588e0a
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_report_configs.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $migrationCenterClient->listReportConfigs($request);
+
+ /** @var ReportConfig $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_report_configs_sample($formattedParent);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_ListReportConfigs_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_reports.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_reports.php
new file mode 100644
index 000000000000..65dad76af1f2
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_reports.php
@@ -0,0 +1,80 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $migrationCenterClient->listReports($request);
+
+ /** @var Report $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::reportConfigName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPORT_CONFIG]'
+ );
+
+ list_reports_sample($formattedParent);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_ListReports_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_sources.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_sources.php
new file mode 100644
index 000000000000..2f3b3b6bf373
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/list_sources.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $migrationCenterClient->listSources($request);
+
+ /** @var Source $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MigrationCenterClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_sources_sample($formattedParent);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_ListSources_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/remove_assets_from_group.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/remove_assets_from_group.php
new file mode 100644
index 000000000000..6b2a2363abc4
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/remove_assets_from_group.php
@@ -0,0 +1,97 @@
+setAssetIds($formattedAssetsAssetIds);
+ $request = (new RemoveAssetsFromGroupRequest())
+ ->setGroup($formattedGroup)
+ ->setAssets($assets);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->removeAssetsFromGroup($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Group $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedGroup = MigrationCenterClient::groupName('[PROJECT]', '[LOCATION]', '[GROUP]');
+ $formattedAssetsAssetIdsElement = MigrationCenterClient::assetName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[ASSET]'
+ );
+
+ remove_assets_from_group_sample($formattedGroup, $formattedAssetsAssetIdsElement);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_RemoveAssetsFromGroup_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/report_asset_frames.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/report_asset_frames.php
new file mode 100644
index 000000000000..96764598cc04
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/report_asset_frames.php
@@ -0,0 +1,74 @@
+setParent($parent)
+ ->setSource($formattedSource);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ReportAssetFramesResponse $response */
+ $response = $migrationCenterClient->reportAssetFrames($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $parent = '[PARENT]';
+ $formattedSource = MigrationCenterClient::sourceName('[PROJECT]', '[LOCATION]', '[SOURCE]');
+
+ report_asset_frames_sample($parent, $formattedSource);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_ReportAssetFrames_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/run_import_job.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/run_import_job.php
new file mode 100644
index 000000000000..11bf180f9aec
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/run_import_job.php
@@ -0,0 +1,80 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->runImportJob($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::importJobName('[PROJECT]', '[LOCATION]', '[IMPORT_JOB]');
+
+ run_import_job_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_RunImportJob_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_asset.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_asset.php
new file mode 100644
index 000000000000..2389be669992
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_asset.php
@@ -0,0 +1,62 @@
+setUpdateMask($updateMask)
+ ->setAsset($asset);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Asset $response */
+ $response = $migrationCenterClient->updateAsset($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END migrationcenter_v1_generated_MigrationCenter_UpdateAsset_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_group.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_group.php
new file mode 100644
index 000000000000..644c4137509d
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_group.php
@@ -0,0 +1,74 @@
+setUpdateMask($updateMask)
+ ->setGroup($group);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->updateGroup($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Group $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END migrationcenter_v1_generated_MigrationCenter_UpdateGroup_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_import_job.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_import_job.php
new file mode 100644
index 000000000000..2af252d5cdf2
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_import_job.php
@@ -0,0 +1,92 @@
+setAssetSource($formattedImportJobAssetSource);
+ $request = (new UpdateImportJobRequest())
+ ->setUpdateMask($updateMask)
+ ->setImportJob($importJob);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->updateImportJob($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var ImportJob $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedImportJobAssetSource = MigrationCenterClient::sourceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SOURCE]'
+ );
+
+ update_import_job_sample($formattedImportJobAssetSource);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_UpdateImportJob_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_preference_set.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_preference_set.php
new file mode 100644
index 000000000000..13536ccd7292
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_preference_set.php
@@ -0,0 +1,74 @@
+setUpdateMask($updateMask)
+ ->setPreferenceSet($preferenceSet);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->updatePreferenceSet($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var PreferenceSet $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END migrationcenter_v1_generated_MigrationCenter_UpdatePreferenceSet_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_settings.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_settings.php
new file mode 100644
index 000000000000..1426d9f05cf1
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_settings.php
@@ -0,0 +1,74 @@
+setUpdateMask($updateMask)
+ ->setSettings($settings);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->updateSettings($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Settings $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END migrationcenter_v1_generated_MigrationCenter_UpdateSettings_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_source.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_source.php
new file mode 100644
index 000000000000..61bb46995ca5
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/update_source.php
@@ -0,0 +1,74 @@
+setUpdateMask($updateMask)
+ ->setSource($source);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->updateSource($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Source $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END migrationcenter_v1_generated_MigrationCenter_UpdateSource_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/validate_import_job.php b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/validate_import_job.php
new file mode 100644
index 000000000000..a5fadf886aa0
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/samples/V1/MigrationCenterClient/validate_import_job.php
@@ -0,0 +1,80 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $migrationCenterClient->validateImportJob($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MigrationCenterClient::importJobName('[PROJECT]', '[LOCATION]', '[IMPORT_JOB]');
+
+ validate_import_job_sample($formattedName);
+}
+// [END migrationcenter_v1_generated_MigrationCenter_ValidateImportJob_sync]
diff --git a/owl-bot-staging/MigrationCenter/v1/src/V1/Client/MigrationCenterClient.php b/owl-bot-staging/MigrationCenter/v1/src/V1/Client/MigrationCenterClient.php
new file mode 100644
index 000000000000..dad9fe65847e
--- /dev/null
+++ b/owl-bot-staging/MigrationCenter/v1/src/V1/Client/MigrationCenterClient.php
@@ -0,0 +1,1883 @@
+ addAssetsToGroupAsync(AddAssetsToGroupRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface aggregateAssetsValuesAsync(AggregateAssetsValuesRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface batchDeleteAssetsAsync(BatchDeleteAssetsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface batchUpdateAssetsAsync(BatchUpdateAssetsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createGroupAsync(CreateGroupRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createImportDataFileAsync(CreateImportDataFileRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createImportJobAsync(CreateImportJobRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createPreferenceSetAsync(CreatePreferenceSetRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createReportAsync(CreateReportRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createReportConfigAsync(CreateReportConfigRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createSourceAsync(CreateSourceRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteAssetAsync(DeleteAssetRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteGroupAsync(DeleteGroupRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteImportDataFileAsync(DeleteImportDataFileRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteImportJobAsync(DeleteImportJobRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deletePreferenceSetAsync(DeletePreferenceSetRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteReportAsync(DeleteReportRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteReportConfigAsync(DeleteReportConfigRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteSourceAsync(DeleteSourceRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getAssetAsync(GetAssetRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getErrorFrameAsync(GetErrorFrameRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getGroupAsync(GetGroupRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getImportDataFileAsync(GetImportDataFileRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getImportJobAsync(GetImportJobRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getPreferenceSetAsync(GetPreferenceSetRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getReportAsync(GetReportRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getReportConfigAsync(GetReportConfigRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getSettingsAsync(GetSettingsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface